这个项目放到论坛之后,有很多热心的小伙伴试用,并且在 github 上面也点赞和 fork。 感谢各位的支持!
不过可能大家使用习惯的问题, 遇到有什么问题,或者看到我在下面的回帖里回复了 qq 号, 就直接加了 qq 进行咨询。由于工作等方面的原因,不可能实时在 qq 上进行回复,并且不少问题都是帖子和回复贴里有的,所以感觉沟通效率不高。
因此,现在暂时屏蔽 qq 号,如果对于该项目有任何使用上的疑问,欢迎通过下面的方式进行反馈:
github 地址: https://github.com/jerrylizilong/autotest_platform \ https://jerrylizilong.github.io/autotest_platform/
参考帖子:
之前使用 Python + flask 开发的 selenium 自动化测试用例管理、执行平台,终于克服懒癌把业务相关的信息剥离掉,代码放到了 GitHub 上面:
执行效果:
执行单条用例:
执行用例集:
基于 python+selenium 的自动化测试管理、执行平台。
python 3.4 以上
selenium : 建议使用 3.0 以上版本
mysql : 建议 5.5 以上
基于 flask 进行开发,进行用例、用例集、步骤等的增删改查等功能。
启动 flask:
python run.py
python core.py
python atx_core.py
# atx 配置
isUseATX=True # True 代表使用 atx
ATXHost = 'http://172.16.100.168:8002' # 对应的 atxserver 地址
git clone https://github.com/jerrylizilong/autotest_platform.git
cd autotest_platform
pip3 install -r requirements.txt
db_host='localhost'
db_port='3306'
db_user='root'
db_password='yourpassword'
database='test_auto_new'
# smtp 发送邮件相关配置:
is_email_enable = False #发送邮件开关
flask_host = 'http://localhost:5000' # 邮件中的报告链接会使用
smtp_server_host = 'smtp.163.com' # 如使用其他的smtp 服务,请修改对应host 和端口
smtp_server_port = '25'
smtp_from_email = 'youraccount@163.com' # 发送邮件的邮箱账号
smtp_default_to_email = 'youraccount@163.com' # 默认接收邮件的邮箱账号
smtp_server_user = smtp_from_email
smtp_server_password = 'yourpassword' # 发送邮件的邮箱密码
# atx 配置
isUseATX=True
ATXHost = 'http://localhost:8000'
python run.py
此时可通过访问 localhost:5000 访问登录界面。
初始用户及密码: admin/0
python core.py
python atx_core.py
# atx 配置
isUseATX=True # True 代表使用 atx
ATXHost = 'http://172.16.100.168:8002' # 对应的 atxserver 地址
可以按以下两种方式进行接入:
服务端启动:
python run_service.py
将通过 9998 端口监听节点启动、关闭状态
selenium grid 节点启动: 将 app/client 目录复制到已安装 selenium driver 的服务器/PC 中,修改 client.py 文件中 host 为服务端对应地址,并启动:
python client.py
服务启动后,会启动 selenium server,并注册到服务器中。
拉取相关镜像:
docker pull selenium/hub
docker pull selenium/node-chrome
docker pull selenium/node-firefox
启动 hub :
docker network create grid
docker run -d -p 4444:4444 --net grid --name selenium-hub selenium/hu
启动节点:
# 建议 NODE_MAX_INSTANCES、NODE_MAX_SESSION 两个参数都设置为 10,便于并发执行
docker run -e NODE_MAX_INSTANCES=10 -e NODE_MAX_SESSION=10 -d --net grid -e HUB_HOST=selenium-hub selenium/node-firefox
docker run -e NODE_MAX_INSTANCES=10 -e NODE_MAX_SESSION=10 -d --net grid -e HUB_HOST=selenium-hub selenium/node-chrome
用例步骤说明:
例子:在百度中输入 selenium,并验证查询结果是否正确。
Chrome,前往|http://www.baidu.com,填写|id@@kw@@selenium,点击|id@@su,验证|Web Browser Automation,截图
步骤解析:
- Chrome: 调用 Chrome driver 进行测试。
- 前往|http://www.baidu.com : 前往目标页。
- 填写|id@@kw@@selenium : 在 id 为 kw 的元素中输入 selenium。
- 点击|id@@su : 点击 id 为 su 的元素。
- 验证|Web Browser Automation : 验证页面中是否出现 ‘Web Browser Automation’ 的文字。
- 截图: 对当前页面进行截图并保存。
某些公共的步骤,可以封装为公共方法进行调用:
还可对用例进行如下管理:
请查看这篇文章的介绍:
https://testerhome.com/topics/11738
样例:
Android|com.your.packagename,点击 |id@@com.your.packagename:id/btn_login,等待 |2,点击 |name@@GuestLogin,等待 |5,截图,
相关的步骤已封装在 app/core/atx_step.py 中,具体包括:
Android : 打开指定已安装的 app(通过包名)
填写: type_text
点击: click(by id/name/description/class)
截图: take_screenshot
由于我测试的 app 功能较为简单,目前只封装了这几个方法,如果需要可增加封装对应的方法。
这个功能有助于提高用例的输入效率。 如下图示是如何添加一条《在百度搜索 testerhome 并截图》的例子:
脑图集成部分代码已提交:
https://github.com/jerrylizilong/autotest_platform
更新说明:
使用说明:
脑图管理
编辑脑图