自动化测试智能测试开发软件测试

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

2019-10-11  本文已影响0人  泰斯特_

起源

出问题了

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

怎么办

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

什么是 violent-webdriver

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

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

使用

安装

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

pip install violent-webdriver

最佳实践

假设我们拥有如下一条用例, 并且我们需要将该用例转化成 自动化测试用例

用例执行步骤:

使用了 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 ) 实现移动端的模拟。

执行过程

运行代码后执行过程如下:

测试.gif

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

总结

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

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

记得点个 star 哦 ~

希望大家能从本篇文章有所收获~

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

image image
上一篇下一篇

猜你喜欢

热点阅读