1.1 编写目的
目前web页面UI自动化测试框架种类繁多,多数需要使用人员具备一定的编程能力。
而pyswat采用的执行方式是类似QTP或Selenium IDE的录制脚本的原理,然后进行回放,而不同的是pyswat录制的不是脚本命令,而是操作执行的步骤(案例),
excel对于操作步骤清晰可见,同时便于修改维护。
另外看到那些录制后通过xpath的方式定位元素的方式感到恐怖。
而采用录制抛弃手写自动化程序的意义一方面是降低自动化测试成本(人力成本,时间成本),
另一方面是以往项目的界面更新修改导致脚本定位元素失效是很头疼的事情,而录制是可以最大限度的降低此种影响,
对于有变动的步骤重新单独录制一遍即可。
1.2 pyswat优势有哪些
pyswat框架最主要的模块在于录制和回放上。虽然pyswat也是基于selenium实现的web自动化操作,但是pyswat框架完全对selenium进行了封装,在回放时不需要大家去操心如何去找页面元素。而录制时一方面借用了selenium,另一方面利用pythonHook记录下用户的鼠标,键盘操作以达到录制案例的目的。
而对于诸如select,frame,框架中处理的是很好的。另外框架自己也封装了一些方法,如:drag方法(拖拽,区别于selenium的软拖拽,完全是根据传入两个元素的位置做了物理拖拽,效果更理想) check方法(页面内容检查,传入你想检查的内容,回放时会在日志中记录查找结果统计)scroll方法(滚动屏幕,支持底部,顶部滚动,滚动到元素位置,流畅滚动等)uploadFile方法(传入文件路径即可,支持多个文件同时上传,对于检查文件不存在等异常会自动关闭选择文件)
另外pyswat框架在异常处理上,做了浏览器弹出框的失败重新回放执行步骤,这样再也不怕测试时遇到弹出框导致用例执行失败了。
这里我以雪球网站为例,看看录制登录的案例的摸样,如下图
在“login”表里大家可以看到StepID(步骤ID),Action(动作来源),思考时间(动作执行等待时间),坐标(鼠标点击的屏幕坐标,这个在回放时可以当做一个轻骑兵来用),属性(记录元素的属性),步骤(记录操作,只做提示查看不影响回放),输入(需要输入文本时,后续完善优化脚本需要在这里调整),参数(配合输入中的内容,可以将这个输入定义为一个参数,后文可以调取这个参数名)
大家看到的这个excel表完全是自动生成的,只有当优化脚本时,你可能需要定义参数或是使用框架的封装功能时才需要手动调整。
对于运行,详实记录日志及报错截图,当运行完后生成柱状图。(目前还未加入自动发邮件功能)
原框架手册 https://www.kancloud.cn/lamecho/pyswat/330991