app自动化环境管理参数化

在web自动化中我们的环境管理是在conftest模块下设置了一个环境管理的函数,并且运用fixture,例如:

import pytest
from selenium.webdriver import Chrome
@pytest.fixture()
def init_app():
    driver=Chrome()
    driver.get('www.baidu.com')
    yield
    driver.quit()

上面代码,就是一个简单的打开浏览器并关闭,也就是说这里只有一种场景

但是在app里面我们可能涉及到多种初始化环境:比如,我们的手机版本不同,初始化是否重置app,是否要直接进入首页,或者是不直接进入(因为有的app有引导页需要滑动屏幕)

针对以上种种需求,那么我们怎么同时测试多种场景?
不同的场景也就是不同的caps,举例,第一种场景是我需要重置app也就是清空数据,第二种场景不重置。

 import pytest
from selenium.webdriver import Remote
  @pytest.fixture(param=['reset','noreset'])
 def init_app(request)   #此处的request是固定用法不可更改
  print(request.param)
  driver=Remote(desired_capabilities=request.param)

这是我们在初始化环境里面设置的代码,那么如何在测试类里面调用

@pytest.usefixture('init_app')
class  Test_case():
       def test_01(init_app)
       pass

因此使用这样的参数化就可以大大的减少我们的测试用例代码量。

当然我们还有一种思路就是将caps存放在列表里面,利用测试函数的参数化,例如unittest里面的ddt数据分离,或者pytest里面的parameterize(英文怕是没写对,哈哈自行看源码去),这两种方法的都是可以实现app初始化的参数化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值