Appium; py.test;蟒蛇;对具有不同包名称的两个应用程序进行相同的测试

时间:2016-02-09 15:15:30

标签: python appium pytest ui-testing

我正在测试必须以2种方式构建的应用程序,包括每日,并行等。这个特定的应用程序需要一个带有假API的构建,其次需要真正的后端。

目前我的所有测试都标记为:

@sanity
@real
@fake
def test_TC101_first_time_use(self):

为每个构建运行特定的测试(一些测试必须从两个版本开始,有些只能在其中一个版本上启动)。

今天开发人员更改了伪API版本的软件包名称,因此可以同时安装这两个版本。

问题:是否可以使我的代码依赖于目前测试的版本?

例如,如果测试开始于: py.test -v -m"真实" 运行测试:

desired_caps['appPackage'] = 'com.companyname.appname'
self.driver.find_element_by_id("com.companyname.appname:id/button").click()

但是当测试开始时: py.test -v -m"假" 运行测试:

desired_caps['appPackage'] = 'com.companyname.appname_fake'
self.driver.find_element_by_id("com.companyname.appname_fake:id/button").click()

我已经尝试了解如何执行此操作但未找到任何特定(快速/简单)方法来解决此问题。我希望有人可以帮助我。

编辑: 作为一种解决方法,我使用简单的bash脚本替换* .py文件中的所有名称,然后再开始测试,但我仍然想知道是否可以采用其他方式。

1 个答案:

答案 0 :(得分:0)

在pytest中,您可以根据命令行专门进行测试。 您需要在conftest.py中使用addoption() 例如: def pytest_addoption(解析器):     parser.addoption(“ - all”,action =“store_true”,         help =“运行所有组合”)

有关详细说明,请参阅: http://pytest.org/latest/example/parametrize.html