1、Pyswat简介
Pyswat(python-selenium-web-auto-test)是基于selenium实现web页面UI自动化操作的,主要模块在于录制和回放,录制的不是脚本命令而是操作执行的步骤,excel对于操作步骤清晰可见同时便于修改维护,录制时一方面借用selenium,另一方面利用pythonHook记录用例的鼠标、键盘操作。
框架也封装了一些方法:
drag(拖拽,区别于selenium的软拖拽,完全是根据传入两个元素的位置做了物理拖拽,效果更理想)
check(页面内容检查,传入你想检查的内容,回放时会在日志中记录查找结果统计)
scroll(滚动屏幕,支持底部,顶部滚动,滚动到元素位置,流畅滚动等)
uploadFile(传入文件路径即可,支持多个文件同时上传,对于检查文件不存在等异常会自动关闭选择文件)
2、Pyswat框架环境搭建
1)Python2.7
2)selenium库
pip2 install selenium
3)xlrd,xlwt库:用于操作excel表格
pip2 install xlrd
pip2 install xlwt
4)ConfigParser库:用于读写Enviroment.ini配置文件
pip2 install ConfigParser
5)numpy、matplotlib库 用于生成运行结果柱状图
pip2 install numpy
pip2 install matplotlib
6)pyHook库:用于python钩子,记录鼠标键盘操作,位数要和python位数版本一致
7)pywin32:python下操作win32api,位数要和python位数版本一致
8)bs4库
pip2 install beautifulsoup4
9)Pillow库
pip2 install Pillow
全部安装完成后,pip2 list查看各库的版本
3、Pyswat框架文件结构
- modual文件夹:程序运行依赖的模块
- pic:保存程序运行时报错的截图
- 2excel.py:生成excel案列的python程序。运行时确保存在“temp_case.txt”存在,名称可在配置文件中任意指定
- webs_record.py:录制程序
- webs_replay.py:回放程序
- 雪球网演示案例.xls:回放执行案例
- res.png:运行结果的柱状图
- run.log:运行时的日志文件
- temp_case.txt:运行webs_record.py生成的录制原始文件,用2excel.py转换为excel格式
- temp_case.xls转换后的案例文件
- Enviroment.ini:配置pyswat框架运行环境
4、Enviroment.ini
使用pyswat前需要配置好Enviroment.ini各项参数:
- [record]:控制“webs_record.py”录制程序的相关参数
- file = temp_case.txt:录制完成后生成的原始记录的文件名称
- url = https://xueqiu.com:录制网址url链接
- browser = Chrome:录制使用浏览器,目前支持Chrome,Firefox,IE。需要selenium运行环境中存在对应各个浏览器的driver
- ex-record = 1:录制增强模式,默认打开。0是关闭(建议打开)
- [2excel]:控制“2excel.py”程序转换案例程序的相关参数
- sheet = temp_case:生成案例的sheet名称,可自定义
- file = temp_case.xls:生成案例的excel文档名称,可自定义
- smart_mode = 1:转化模式,目前默认为1,自动转换键盘输入内容。目前pyswat框架运行只识别该模式下的案例
- [replay]:控制“webs_replay.py”回放程序的相关参数
- file = C:\Users\lamecho\Desktop\pyswat_xueqiu_show\雪球网演示案例.xls:运行案例的完整路径
- case = login,send_message(1),pay_message,new_stock,修改个人信息,退出登录:运行案例的case名称及运行次数(case名称是对应案例excel表中sheet名)
- url = https://xueqiu.com:回放时打开的web网址
- browser = Chorme:录制使用浏览器,目前支持Chrome,Firefox,IE。需要selenium运行环境中存在对应各个浏览器的driver
- think_time = 0:思考时间配置,0表示不使用录制的思考时间;1表示回放时执行思考时间
- wait_time = 3:各个case切换时的等待时间,默认3秒
- retry = 0:当案例回放失败后是否执行重试,0不打开重试功能,1执行重试
- [parameters]:保存案例中指定random方式生成的参数名称及其内容
- p1 = message-0005:当存在多个参数时,会依次保存
- [parameters_seq]:保存案例中指定的sequence方式生成的参数及其内容。可修改参数内容,运行时确保案例中调用的参数存在于配置文件中。
- p1 = message-0004,message-0005,message-0002,message-0003,message-0001:当存在多个参数时,会依次保存。可修改参数内容,运行时确保案例中调用的参数存在于配置文件中。注意分隔符号采用英文逗号