其他测试框架 webUI 自动化测试框架---” pyswat “介绍

辣么丑 · 2017年05月03日 · 最后由 辣么丑 回复于 2018年03月12日 · 4323 次阅读

大家好我是 lamecho 辣么丑,今天给大家介绍一款 web 自动化测试框架 pyswat。 ” pyswat“是一个做 web 页面自动化测试的框架(python-selenium-web-auto-test 缩写)。基于 python,利用 hook 技术及对 selenium 封装,做到完全录制案例(操作步骤)不需要手写脚本,很方便有木有!:lol
举个栗子,做网站登录操作在 python 中你要这样写一大堆脚本

而通过 pyswat 的录制后,你得到的是一个 excel 表格的案例,像这样

得到案例后,执行程序回放案例,超级简单。另外框架实现功能远远不止这些。通过配置文件可以针对某个 case 设置回放次数,回放时利用智能算法查找元素不需要你在苦逼的写脚本啦。
案例也可以增强,在输入内容上可以指定 random 随机生成输入内容,比如 random:测试 +int(3),此时回放时输入就会随机生成文本” 测试 549“(” 测试 “+ 随机的三位数)位数通过括号数字指定。当然也可以这样写 random:测试 +int+str(5)就会带上随机生成字母。
除了随机生成输入内容,同样如果指定 sequence:测试,配合 case 的回放次数会按顺序生成文本内容进行输入,比如第一遍会生成” 测试-0001“,第二遍生成” 测试-0002“依次类推。同时如果将生成的内容指定参数名称,再后面的案例可以获取该参数的内容进行前后关联。
还有,封装了 drag 元素拖拽方法,有没有感觉 selenium 的拖拽 drag_and_drop 超级废,pyswat 框架封装的 drag 实现的是超强的半物理拖拽,你只要传入拖拽的两个元素就能实现这两个元素的物理拖拽。
在页面检查上,封装了 check()方法,传入检查项可以在回放日志中体现查找结果,类似这样修改案例

日志中记录结果:
2017-05-03 13:16:42 :---- step7 开始
2017-05-03 13:16:45 :------ 查找结果共: 0 条
2017-05-03 13:16:45 :------ 查找结果页面无此元素 随便说说
2017-05-03 13:16:46 :---- step7 结束

还有啥呢,在页面元素定位如果查找到的元素是个集合怎么办呢,以往在 python 脚本中你要写循环做判断进行匹配。而在 pyswat 框架中,你只要指定” at:填上匹配内容 “程序会自动识别匹配。
举个栗子,在雪球网上这样的页面


你要点击某个” 关注 “按钮,而你通过 find_elements_by_class('followStock') 找到的是一个集合,在脚本中你要写一大堆判断是吧。

而通过 pyswat 你只需要这样写,在红框位置加入 at:文本内容 就 ok 了。

如果这样还觉得不够强,那么你可以直接在案例中写 python 脚本,像这样

这样该够强了吧!
另外实现屏幕滚动,附件上传统统有封装的方法实现。像遇到 select,frame 等简直小菜一碟,pyswat 统统搞定。
最后执行完后,会自动生成柱状图,像这样:

结果一目了然有木有。
目前我正在写 pyswat 的操作手册,感兴趣的筒子,关注我的新浪微博 “lamecho 辣么丑” 或是微信 “fire-bug”,完成手册编写我会第一时间通知并发布测试版本。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 38 条回复 时间 点赞

666,楼主能否说一下这个框架的原理

开头就说啦,采用 hook+selenium 配合 python
比如录制钩子获取键盘消息 然后动态识别页面元素达到录制目的 最后自动生成 excel 案例

好奇,坐等测试版本

程橙 回复

测试版本已经 OK 了 就是操作使用手册还在写

辣么丑 回复

期待楼主开源

用例集是怎么管理啊?看到目前是录制一个用例就生成一个 excel 记录文件

哄哄 回复

生成的用例只是临时的,每个项目自己整合录制的用例放到单独的 excel 表里一个 sheet 就是一个 case。具体的操作手册还在写

webUI 自动化测试框架---” pyswat“测试版发布在即,感兴趣或想要试用的同学关注我的微博或 + 微信。
获取渠道只在微博和微信发出,谢谢!

辣么丑 回复

最后会开源么?

Mingway_Hu 回复

主程会以 python 文件发出来

帖子呢

什么时候出来测试版本和 操作手册,持续等待中。。。。

程橙 回复

已经快写完啦 别着急
微博有截图为证 😄

三年前就写出来的东西.

手册已经写好了 移步微博
程序最快下午弄好发布出来

测试版链接已发微博

辣么丑 回复

楼主,微博地址呢

End 回复

文章末尾

很不错,能一个脚本兼容不同浏览器吗?

chenyouan 回复

具体看使用手册
配置文件可以配置使用的浏览器。目前支持 ie chrome firefox

今天优化了 at 查找关联
并封装了直接通过元素 innertext 查找元素的方法
改了几个 bug

pyswat 框架学习 qq 群 631466916。最新版本更新到 1.0.1,群文件里获取最新版本

在线使用手册文档更新 具体地址看我微博

最新 1.0.3 已发布

厉害了我的哥, 虽然现在作为一个自动化测试的小白,除了提交回复以外不能发表任何建设性的意见, 但我会加油成为大神的。

zhang 回复

加油
目前 pyswat 框架已经更新到 1.0.6 啦

今天对框架做了一个比较大的改进,就是通过录制时增加了获取元素的 xpath 路径,这样回放的时候增加了一种回放方式
版本更新到 1.0.7

还没安装环境的有福了,pyswat 环境安装不再需要一个个安装那些第三方库文件了。使用 virtualenv 省去了这些步骤,还未使用的筒子快点上车啦

感觉很强大呀,加油

看起来没觉得有啥意义....

Jay_ 回复

我也觉得没啥意义 毕竟你三年前就写出来了这样没意义的垃圾

好像没有看到验证测试结果的步骤?

tonglei 回复

验证 用 check 方法

版本更新到 1.0.8

pyapp 框架也出来了 小伙伴 速度体验

pyswat - 1.0.26 更新
pyapp - 体验版本 20180104


pyswat 新增元素图片检查,结果检查更直观

辣么丑 回复

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册