使用pytest-xdist实现分布式APP自动化测试:基于socket
1|0前言
在上篇文章《使用pytest-xdist实现分布式APP自动化测试:基于SSH》中,尝试了使用SSH来实现master和worker的通信网关,现在来看下使用socket怎么实现。其实在最开始的《使用pytest-xdist实现分布式WEB自动化测试》已经提到过socket,这次再将实现APP自动化测试的细节做一说明
2|0项目环境
2|1系统环境
角色 | 系统 | Python版本 | ip |
---|---|---|---|
master | Centos7.6 | v3.8.0 | 192.168.0.109 |
worker1 | Centos7.6 | v3.8.0 | 192.168.0.126 |
worker2 | Centos7.6 | v3.8.0 | 192.168.0.136 |
2|2客户端环境
测试机 | 系统 | ip | tcpip |
---|---|---|---|
逍遥模拟器-1 | v7.1.2 | 192.168.0.112 | 6666 |
逍遥模拟器-2 | v7.1.2 | 192.168.0.113 | 6666 |
2|3运行环境
容器 | 版本 | 端口号 | 宿主机器 |
---|---|---|---|
appium_2 | v1.17.0 | 4725->4723 | worker1 |
appium_2 | v1.17.0 | 4725->4723 | worker2 |
3|0项目结构
主要的测试用例存储在test_case.py中,main.py是运行入口
4|0准备工作
4|1挂载报告目录
与上篇相同。略
4|2模拟器设置
与上篇相同。略
4|3启动服务
docker, appium_2, 连接模拟器与上篇相同。略
这里讲一下socketserver.py,将它下载好分别放在两个worker的/opt目录下,然后运行python3 socketserver.py
5|0同步运行
5|1同步方式
这种同步方式又和SSH不同了,因为它没法指定目录,当你的worker在什么目录时,它就将pyexecnetcache放在哪个目录下
比如一开始我们的worker在/opt目录下,使用同步并运行的命令
master
worker1
worker2
然后试着将worker所在位置切换到根目录。注意这里你要运行socketserver.py只能使用python3 /opt/socketserver.py
(这里只是举个例子,要运行时肯定是要切到/opt目录下,因为我们的挂载点路径是/opt/pyexecnetcache/APP_Xdist_AutoTest/allure_reports)
master
worker1
worker2
看到报错,和我们前面解释的一样,是因为项目比较复杂,涉及的依赖多,因此只能通过运行main.py方法来实例化driver,再通过conftest中的fixture传递给页面对象
5|2同步运行
先要修改一下main.py
然后在各个worker的/opt目录下运行socketserver.py:python3 socketserver.py
最后运行main.py:main.py
master
6|0报告预览
服务器上导出的报告容易出现样式缺失,因此要将项目放在jenkins上运行,得到在线报告
__EOF__

本文链接:https://www.cnblogs.com/my_captain/p/12789869.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器