让 UI 测试变得更便捷 - violent-webdriver

起源

出问题了

相信你们对 Selenium & UI 测试都不陌生,然而在实践过程当中可能会碰到以下几个问题~css

  • 被测试执行过程当中遇到的各类偶发错误所困扰;
  • 为确保一个用例操做的正确执行而写了很是多冗余的代码 ( time.sleep() 等 );
  • 各类异常状况致使的测试结果不许确。

怎么办

笔者固然也碰到过这些问题,因而乎有了 violent-webdriver ( 基于 python ) 的诞生。python

什么是 violent-webdriver

violent-webdriver 诞生于二次封装 Selenium Webdriver,内部封装了许多方法来确保浏览器操做的执行性,你不须要去担忧定位到的元素是否存在于当前页面或者元素是否在当前时刻处于可点击状态,报错重试机制能够帮你自动解决这些没必要要的麻烦。git

简单来讲,violent-webdriver 就是一个 Selenium 插件库,以 对测试友好的角度 从新封装了 Selenium 内部的方法。github

使用

安装

安装过程很是简单,仍是同样的 pip install 大法 ( 请先确保正确安装了 Selenium 以及对应的浏览器驱动 ):web

pip install violent-webdriver
复制代码

最佳实践

假设咱们拥有以下一条用例, 而且咱们须要将该用例转化成 自动化测试用例chrome

用例执行步骤:浏览器

  • 访问百度首页
  • 搜索 test
  • 点击进入第一个搜索结果
  • 验证搜索结果是否为「百度翻译」
  • 验证翻译结果是否为「测试」

使用了 violent-webdriver 后,咱们测试代码能够这么写~ (以下所示):框架

核心代码

# 导包
from violent_webdriver import Chrome

# 初始化 driver
dr = Chrome.violent_chromedriver(executable_path='C://MyDownloads/Download/chrome-win32/chromedriver.exe',
                                 use_mobile_emulation=True)

# 访问「百度首页」
dr.get('https://www.baidu.com')

# 导入 TouchActions 
from selenium.webdriver.common.touch_actions import TouchActions

# 期待标题
expected_title = '百度翻译'

# 期待翻译结果
expected_result = '测试'

# 百度搜索框输入 test
dr.v_send_keys(locate_rule={'id': 'index-kw'}, message='test')

# 点击搜索按钮
dr.v_click(locate_rule={'id': 'index-bn'})

# 点击第一个命中的搜索结果 (框架内默认对第一个知足条件的元素进行操做)
dr.v_click(locate_rule={'tag name': 'em', 'text': 'test'})

# 获取实际的标题
actual_title = dr.v_get_text(locate_rule={'css selector': '.sfa-title'})

# 获取实际的翻译结果
actual_result = dr.v_get_text(locate_rule={'css selector': 'p[class=\'trans-content\']'})

# 趣味性断言 ~ .~
if actual_title and actual_title == expected_title and actual_result and actual_result == expected_result:
    dr.execute_script('alert(\'测试经过୧(๑•̀◡•́๑)૭\')')
else:
    dr.execute_script('alert(\'测试失败o(╥﹏╥)o\')')
复制代码

代码讲解

每一行代码都有很是明确的注释,相信读者能够清晰的看到,我并无加入任何的 time.sleep , 而且能经过一个简单的参数传递 ( use_mobile_emulation ) 实现移动端的模拟。测试

执行过程

运行代码后执行过程以下:spa

测试经过୧(๑•̀◡•́๑)૭

总结

当 UI 测试代码量逐渐增大、测试流程愈来愈复杂时,我相信,violent-webdriver 必定能帮助到你~

violent-webdriver 开源地址: github.com/amazingTest…

记得点个 star 哦 ~

但愿你们能从本篇文章有所收获~

最后给你们推荐一下个人公众号 「智能测试开发」,欢迎你们扫描下方海报二维码领取 进阶教程~

相关文章
相关标签/搜索