安利一下自己写的 Web 自动化测试辅助工具 nopo

2021-12-22 22:53:44 +08:00
 BillTin

Python 包,帮助在 Web 自动化测试中,使用 Page Object 方式编写代码。

名称取 not only page object 的首字母。

基于 Selenium 封装,开发受到了 poium 的影响。

项目地址:https://github.com/DingJunyao/nopo,欢迎 fork 和 star 。

pip 安装:pip install nopo,目前支持 Python 3.7 及以上版本。

目前在自己所在的公司里面有一定的应用(虽然目前公司里面做测试的就两个人……而且以人工测试为主)。

不知道这里做 Web 自动化测试的人有多少……也不知道怎么更好地安利它,毕竟自己认识的人基本上没有同行……

如果大家觉得有什么可以添加的功能,或者说有什么建议——不管是代码、文档还是其他——都可以提~

2292 次点击
所在节点    分享创造
9 条回复
del1214
2021-12-23 09:29:42 +08:00
感谢分享
cyrivlclth
2021-12-23 10:22:14 +08:00
感觉像是简单事情复杂化?
AchieveHF
2021-12-23 10:56:54 +08:00
Playwright 更香吧
BillTin
2021-12-23 12:19:16 +08:00
@AchieveHF 我试过 Playwright ,在处理浏览器级别的对话框的效果不是很理想,就没有用。

@cyrivlclth 如果直接用 Selenium ,创建的 WebElement 对象不太稳定,页面稍微变一下就要重新生成。重复写代码比较麻烦,一开始用的是 poium ,之后想扩展功能发现比较麻烦,索性自己写了……
cyrivlclth
2021-12-23 16:14:08 +08:00
@BillTin 这个东西可以前端打包的时候自动生成吗?
BillTin
2021-12-23 21:05:15 +08:00
@cyrivlclth 应该不行,至少我没有往这方面想过……感觉这个难度挺大的,我在的公司里面,很多项目里面的 Web 控件都是没有非常明显的特征,要手写 XPath 才行。

刚才发现自己之前的描述有问题,修正一下:之前说的“不稳定”,是在**测试过程**中,页面元素发生变化的情况(可能通过之前的查询还能查到元素,肉眼上发现不了变化,但是元素实际上重新加载过。这种情况下如果不重新查找元素,试图操作原先的元素,会抛出 `StaleElementReferenceException` 这样的异常)。
cyrivlclth
2021-12-24 15:15:40 +08:00
@BillTin 就说页面元素是动态生成的,每次都不一样的意思?
BillTin
2021-12-24 18:38:43 +08:00
@cyrivlclth 有这种情况,不过不是这个意思,元素的定位和特征相对比较固定,但是会重新加载
warcraft1236
2021-12-27 14:45:26 +08:00
简单搂了一眼代码,感觉就是封装了一下 By.xxx 方法,这玩意跟 po 有啥关系

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/823862

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX