openjdk platform binary是什么进程_基于pytest实现appium多进程兼容性测试

01

前言

在实际工作中,如果要用appium实现多设备的兼容性测试,大家想到的也许是“多线程”。 但由于python中GIL的影响,多线程并不能做到"多机并行",这时候可以考虑使用多进程的方式。

02

为什么基于Pytest

我们知道, pytest中的conftest.py可以定义不同的fixture,测试用例方法可以调用这些fixture,来实现数据共享。 以前的框架的思路是: Common目录下的base_driver.py定义生成driver的方法-->conftest.py中调用前者生成driver-->TestCases下的测试用例调用fixture, 来实现driver共享 。 但是现在不同了,我们有多个设备,这些设备的信息如果只是单纯的写在yml中,我们并行去取的时候似乎也不方便,那可以写在哪里? conftest.py似乎也不是写设备信息的好地方,最后只剩下了main.py,而且将main.py作为多进程的入口再合适不过了。 但问题又来了,如果我们想启动多个appium服务,需要考虑以下几点: 1、appium通过什么方式启动? 2、设备信息如何传递给base_driver方法来生成driver 第一点很明确,客户端启动appium server的方式似乎有点不合时宜了,如果你要同时测5个手机,难道要一个个启动客户端吗? 最好的方式是启动命令行,因为命令行启动更方便更快! 在说第二点前,先整理一下思路: main.py定义多个设备信息-->base_driver方法调用,生成多个driver-->TestCases下的测试用例调用fixture。 但是设备信息怎么传递给base_driver方法呢? 这时候pytest中的初始化hook函数就派上用场了。

03

初始化hook函数

先看看pytest官网的解释: pytest_addoption(parser)方法:可以在插件和conftest.py中使用。 该方法可以注册命令行参数,以及添加init属性。 它在测试开始运行的时候被调用一次。 参数: parser(_pytest.config.Parser),使用parser.addoption(...)增加命令行参数,使
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值