阿皮姆;py检验;python对具有不同软件包名称的两个应用程序进行相同的测试
我正在测试的应用程序必须以两种方式构建,包括每日、并行等。这个特定的应用程序需要一个使用假API的构建,第二个使用真实的后端 目前,我所有的测试都标记如下:阿皮姆;py检验;python对具有不同软件包名称的两个应用程序进行相同的测试,python,appium,pytest,ui-testing,Python,Appium,Pytest,Ui Testing,我正在测试的应用程序必须以两种方式构建,包括每日、并行等。这个特定的应用程序需要一个使用假API的构建,第二个使用真实的后端 目前,我所有的测试都标记如下: @sanity @real @fake def test_TC101_first_time_use(self): 并为每个构建运行特定的测试(有些测试必须为两个版本启动,有些测试只能在其中一个版本上启动) 今天,开发人员更改了假API版本的包名,以便可以同时安装这两个版本 问题:是否有可能使我的代码依赖于当前测试的版本 例如,如果测试由:
@sanity
@real
@fake
def test_TC101_first_time_use(self):
并为每个构建运行特定的测试(有些测试必须为两个版本启动,有些测试只能在其中一个版本上启动)
今天,开发人员更改了假API版本的包名,以便可以同时安装这两个版本
问题:是否有可能使我的代码依赖于当前测试的版本
例如,如果测试由:py.test-v-m“real”启动,则使用以下命令运行测试:
desired_caps['appPackage'] = 'com.companyname.appname'
self.driver.find_element_by_id("com.companyname.appname:id/button").click()
desired_caps['appPackage'] = 'com.companyname.appname_fake'
self.driver.find_element_by_id("com.companyname.appname_fake:id/button").click()
但是当测试由:py.test-v-m“假”启动时,使用以下命令运行测试:
desired_caps['appPackage'] = 'com.companyname.appname'
self.driver.find_element_by_id("com.companyname.appname:id/button").click()
desired_caps['appPackage'] = 'com.companyname.appname_fake'
self.driver.find_element_by_id("com.companyname.appname_fake:id/button").click()
我试图寻找信息如何做到这一点,但没有找到任何具体的(和快速/简单的)方法来解决这个问题。我希望有人能帮我
编辑:
作为一种解决方法,我使用简单的bash脚本,在开始测试之前替换*.py文件中的所有名称,但我仍然想知道这是否可以用其他方法实现。在pytest中,您可以根据命令行专门化测试。 您需要在conftest.py中使用addoption() 例如: def pytest_addoption(解析器): parser.addoption(“--all”,action=“store\u true”, help=“运行所有组合”) 有关详细说明,请参阅:
在pytest中,您可以根据命令行专门化测试。 您需要在conftest.py中使用addoption() 例如: def pytest_addoption(解析器): parser.addoption(“--all”,action=“store\u true”, help=“运行所有组合”) 有关详细说明,请参阅:
谢谢您的回复。我确实看到了这种方法,但坦率地说,尝试使用它失败了。Atm我在Jenkins上使用${PACKAGE_NAME}和变量注入,工作正常,但它不是无问题的解决方案。如果有更多时间,我将再次尝试使用该参数化。我使用了pytest_addoption(),效果非常好。感谢您的回复。我确实看到了这种方法,但坦率地说,尝试使用它失败了。Atm我在Jenkins上使用${PACKAGE_NAME}和变量注入,工作正常,但它不是无问题的解决方案。如果有更多时间,我将再次尝试使用该参数化。我使用了pytest_addoption(),效果非常好。