让 UI 测试变得更便捷 —— violent

编程入门 行业动态 更新时间:2024-10-10 10:32:21

让 UI 测试变得更<a href=https://www.elefans.com/category/jswz/34/1725118.html style=便捷 —— violent"/>

让 UI 测试变得更便捷 —— violent

起源

出问题了

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

  • 被测试执行过程中遇到的各种偶发错误所困扰;
  • 为确保一个用例操作的正确执行而写了非常多冗余的代码 ( time.sleep() 等 );
  • 各种异常情况导致的测试结果不准确。

怎么办

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

什么是 violent-webdriver

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

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

使用

安装

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

pip install violent-webdriver
复制代码

最佳实践

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

用例执行步骤:

  • 访问百度首页
  • 搜索 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('')# 导入 TouchActions 
from selenium.webdrivermon.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 ) 实现移动端的模拟。

执行过程

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

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

总结

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

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

记得点个 star 哦 ~


END绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

获取方式 :

更多推荐

让 UI 测试变得更便捷 —— violent

本文发布于:2024-02-14 12:55:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1763711.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:便捷   测试   UI   violent

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!