pytest-xdist:远程多主机 - 分布式运行自动化测试

2024-04-27 21:20

本文主要是介绍pytest-xdist:远程多主机 - 分布式运行自动化测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介:pytest-xdist插件使用新的测试执行模式扩展了pytest,最常用的是在多个CPU之间分发测试以加快测试执行,即

pytest -n auto

同时也是一个非常优秀的分布式测试插件,分别支持ssh和socket两种方式实现master和worker的远程通讯。需要特别注意的是rsync功能被弃用,因为它的实现在远程工作者中再现开发环境方面存在缺陷,而且没有明确的解决方案。出于这个原因,rsync计划在4.0版中删除,让团队专注于一组较小的功能。请注意,SSH和套接字服务器不是计划删除的,因为它们是execnet功能集的一部分。

测试用例分布式运行的优势:

1. 测试用例之间的运行是完全独立,没有依赖关系。2. 既支持按顺序,也随机执行,测试用例执行不强制按照顺序执行。3. 每个用例都可以重复执行,并且运行结果,都不会影响其他用例。

官方文档:

https://pytest-xdist.readthedocs.io/en/stable/

历史攻略:

Pytest用例自定义 - 重复、并行、串行

Pytest+Yaml 数据驱动测试用例

pytest+allure安装和使用

pytest:并行和并发运行用例

python:消息推送 - 企业微信机器人推送

让你的pytest日志更有序:配置和使用技巧

Playwright - 04:pytest并行、并发、运行浏览器兼容性测试

安装:

pip install pytest-xdist

由于SSH的方式相对写得云里雾里。本文使用socket的方式演示。

原理:开启socket服务,服务间进行信息交换和传递

下载文件:socketserver.py

https://github.com/pytest-dev/execnet/blob/master/src/execnet/script/socketserver.py# 官网的链接是下面这个,其实是错的,会报404错误 (估计是没更新或者不维护了)
# 应该是最上面这个链接。
https://raw.githubusercontent.com/pytest-dev/execnet/master/execnet/script/socketserver.py

case源码:test_case/test_demo.py

开启服务:

python socketserver.py

图片

使用socket远程执行:

路径不好判断的话,直接使用 ./
最好使用 -n auto 不然传递文件很慢。单个work很慢。

pytest -n auto -d --tx socket=127.0.0.1:8888 --rsyncdir ./# 在main.py 内 这些方式可能是无效的。
pytest.main(["-n", "auto", "-d" "--tx", "socket=127.0.0.1:8888", "--rsyncdir ./"])

图片

云服务器开启socket服务案例:

python socketserver.py

执行结果:在远程服务器端会生成一份相应的项目数据,因为我们使用的是 ./ 即 把当前项目远程拷贝到目标服务器执行

图片

图片

这篇关于pytest-xdist:远程多主机 - 分布式运行自动化测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941566

相关文章

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

Redis实现分布式锁全过程

《Redis实现分布式锁全过程》文章介绍Redis实现分布式锁的方法,包括使用SETNX和EXPIRE命令确保互斥性与防死锁,Redisson客户端提供的便捷接口,以及Redlock算法通过多节点共识... 目录Redis实现分布式锁1. 分布式锁的基本原理2. 使用 Redis 实现分布式锁2.1 获取锁

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

Redis分布式锁中Redission底层实现方式

《Redis分布式锁中Redission底层实现方式》Redission基于Redis原子操作和Lua脚本实现分布式锁,通过SETNX命令、看门狗续期、可重入机制及异常处理,确保锁的可靠性和一致性,是... 目录Redis分布式锁中Redission底层实现一、Redission分布式锁的基本使用二、Red