def getOsign(self,para_info, osignList, appkey):
"""
The real osign method.
:param para_info:
:param osignList:
:param appkey:
:return:
"""
paraPand = ''
print('osign list is :',osignList)
for para in osignList:
if para == 'appKey':
paraPand += appkey
else:
paraPand += str(para_info[para])
print(para_info[para])
print(paraPand)
return self.md5(paraPand)
参考链接:
https://testerhome.com/topics/15534 : Python + flask+ selenium 自动化测试用例管理、执行平台
https://testerhome.com/topics/15897 : UI 自动化测试用例整理举例-百度首页
https://testerhome.com/topics/16106 : 使用 python 多进程模块 multiprocessing 并发执行测试用例
autotest_platform
基于python+selenium的自动化测试管理、执行平台。 注:2019-03-25: 新增接口测试模块, 具体请查看 8.接口测试管理 部分说明
UI 自动化执行效果:
单条用例执行记录:
单条用例执行截图记录:
用例集执行统计:
版本要求:
使用说明:
用例编辑:
可以使用页面的编辑器编写用例步骤:
1. 新建用例:
用例步骤说明:
1.1 用例初始化:
初始化可以有以下方式:
用例说明:
一. 使用chrome 浏览器进行测试:
例子:在百度中输入selenium,并验证查询结果是否正确。
步骤解析:
二. 使用chrome 浏览器模拟移动设备进行测试:
例子:模拟iPhone 6 打开网页,在百度中输入selenium,并验证查询结果是否正确。
步骤解析:
2.公共用例
某些公共的步骤,可以封装为公共方法进行调用:
三. 使用公共方法进行测试:
例子:
步骤解析:
效果等同于:
效果等同于:
3.用例管理:
还可对用例进行如下管理:
4.用例集管理:
5.节点管理:
6.步骤管理:
7.atx
7.1. android 用例组织:
样例: Android|com.your.packagename,点击|id@@com.your.packagename:id/btn_login,等待|2,点击|name@@GuestLogin,等待|5,截图,
7.2 已封装步骤:
相关的步骤已封装在 app/core/atx_step.py 中,具体包括:
Android : 打开指定已安装的app (通过包名) 填写: type_text 点击: click (by id/name/description/class) 截图: take_screenshot
由于我测试的 app 功能较为简单,目前只封装了这几个方法,如果需要可增加封装对应的方法。
8.接口测试管理
8.1 思路
8.2 url 格式
例如一个登录接口,格式为: host+api路径?参数1=值1&参数2=值2 例子: http://localhost/login/api/test.do?username=user1&password=123456&from=android
8.3 添加/编辑接口
添加步骤:
如下图示:
8.4 配置具体的测试host 列表和参数列表
在 app/api_new/para.py 文件中,配置对应的参数值和host 列表(如开发环境、测试环境、正式环境)。如下图示:
8.5 测试执行
如下图示:
8.5 签名算法修改
在 app/api_new/api_manage.py 文件的 getOsign 方法修改对应的签名算法:
——————————————————————————————————————————————————————————————————————————————————————
9.集成百度脑图
思路:集成 kityminder-editor https://github.com/fex-team/kityminder-editor 框架,并将脑图的内容保存到数据库和读取展现。
GET START:
安装步骤:
1. clone 或下载代码包到本地解压:
2. 按requirements.txt 安装依赖:
3. 数据库配置:
3.1 在mysql中创建数据库,并执行 init.sql 建表并初始化配置数据。
3.2修改 app/config.py 中关于数据库部分的配置: host、port、database、user、password。
4. 邮件配置:修改 app/config.py 中关于邮件部分的配置(如不需要发送邮件,请忽略)。
5 修改 app/config.py 中关于 atx server 配置(如不需要使用 atx 测试android 设备 ,请忽略):
启动:
1.启动 flask:
此时可通过访问 localhost:5000 访问登录界面。 初始用户及密码: admin/0
2.1 启动 core service(selenium 的执行服务):
2.2. 启动atx core服务:
3. selenium 接入
selenium 最终接入的效果是提供可执行的selenium 环境供系统执行用例。节点管理页面必须有可以使用、并状态为开启的节点才能执行用例。
可以按以下两种方式进行接入:
3.1 selenium server接入:
服务端启动:
将通过9998 端口监听节点启动、关闭状态
selenium grid 节点启动: 将app/client 目录复制到已安装selenium driver 的服务器/PC 中,修改client.py文件中host 为服务端对应地址,并启动:
服务启动后,会启动 selenium server,并注册到服务器中。
3.2 其他方式(原有selenium server、selenium docker等)
附: docker 搭建selenium 镜像命令:
拉取相关镜像:
启动 hub :
启动节点:
4.自定义关键字:
可以在 步骤管理 页面对已封装的关键字进行管理,或添加新的关键字:
4.1 封装selenium 命令
可以直接将 python selenium 的执行语句直接封装成新的关键字方法:
4.2 封装自定义方法为关键字
在 app/core/extend.py 文件中新增新的自定义方法, 如:
将封装的方法添加到步骤管理中:
常见问题:
1:没有可用的节点
2:selenium 的浏览器被占用
3:selenium 相关报错