Appium 并发测试基于unitest

目录

前言:

思路:

1. 重写unittest的初始化函数

2. 封装启动appium的服务方法:

3. 封装连接Android设备的方法:

4. 多线程启动服务和多线程连接多终端,生成日志报告

总结:


前言:

在回归测试阶段,UI测试,兼容测试是测试的必要步骤。UI自动化的本身是比较冗余的测试,但是换个角度思考,UI自动化同时连接多台设备,那么在回归测试时,在同一个脚本下产生的测试结果是非常有价值的。

不同设备在并发下的测试结果可以为我们提供:

1. 兼容性测试(不同的手机品牌,Android版本, 分辨率等)

2. 性能测试(通过安装Emmagee,监控不同手机在同脚本下,性能的变化)

3. 界面对比(通过图像识别opencv,截图对比等 查看在相同页面的变化)

思路:

1. 启动多路appium服务

2. 启动并连接多路手机端

3. 运行并生成测试报告

问题:

1. python的unittest框架和java不同,不支持参数传入,可以通过重写unittest.TestCase的init添加参数

2. appium 通过命令行启动,需要安装非desktop的版本,且最好安装1.9版本appium,1.0我启动不了

框架代码截取:

1. 重写unittest的初始化函数

class ParametrizedCase(unittest.TestCase):
        def __init__(self, methodName='runTest', param=None):
        super(ParametrizedCase, self).__init__(methodName)
        global devices
        devices = param

        @classmethod
        def setUpClass(cls):
            cls.driver = connect_device(devices)

        @classmethod
        def tearDownClass(cls):
            cls.driver.close_app()
            cls.driver.quit()

2. 封装启动appium的服务方法:

基于 appium 的启动命令

appium  -p  -bp  -U 

封装多线程启动

class AppiumServer:
    def __init__(self, kwargs=None):
        self.kwargs = kwargs

    def start_server(self):
        """start the appium server
        """
        for i in range(0, len(self.kwargs)):
            cmd = "appium --session-override -p %s -bp %s -U %s" % (
                self.kwargs[i]["port"], self.kwargs[i]["bport"], self.kwargs[i]["devices&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值