我正试图使用AWS设备场执行QAF BDD测试(使用TestNG的Appium测试(,但不幸的是,即使没有错误,它也不会触发测试用例的执行。在本地执行时同样工作良好。
testng.xml配置:
<suite name="QAF Demo" verbose="0">
<test name="Launch_App" enabled="true">
<groups>
<run>
<include name="SMOKE"/>
</run>
</groups>
<classes>
<class name="com.qmetry.qaf.automation.step.client.text.BDDTestFactory"/>
</classes>
</test>
</suite>
BDD文件:
SCENARIO: SampleTest
META-DATA: {"description":"Sample Test Scenario","groups":["SMOKE"]}
Given print message
END
来自AWS的日志:
Start Appium TestNG test [DeviceFarm] java -Dappium.screenshots.dir=$DEVICEFARM_SCREENSHOT_PATH org.testng.TestNG -testjar *-tests.jar -d $DEVICEFARM_LOG_DIR/test-output -verbose 10 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. [TestRunner] Running the tests in 'Launch_App' with parallel mode:false [RunInfo] Adding method selector: org.testng.internal.XmlMethodSelector@7cf10a6f priority: 10 include groups [SMOKE] exclude groups: [] Scanarios location: [TestClass] Creating TestClass for [ClassImpl class=com.qmetry.qaf.automation.step.client.text.BDDTestFactory] [TestNG] Running: /tmp/scratchE1xraV.scratch/test-packagel0A01c/testng.xml [SuiteRunner] Created 1 TestRunners [TestRunner] Running test Launch_App on 1 classes, included groups:[SMOKE ] excluded groups:[] ===== Test class com.qmetry.qaf.automation.step.client.text.BDDTestFactory ====== [TestNG] RUNNING: Suite: "Launch_App" containing "0" Tests (config: /tmp/scratchE1xraV.scratch/test-packagel0A01c/testng.xml) ===== Invoked methods ===== Creating /tmp/customer_log_directoryz6SHdY/test-output/QAF Demo/Launch_App.html Creating /tmp/customer_log_directoryz6SHdY/test-output/QAF Demo/Launch_App.xml =============================================== Launch_App Tests run: 0, Failures: 0, Skips: 0 =============================================== [TestNG] [TestNG] =============================================== [TestNG] Launch_App [TestNG] Tests run: 0, Failures: 0, Skips: 0 [TestNG] =============================================== =============================================== QAF Demo Total tests run: 0, Failures: 0, Skips: 0 ===============================================
是因为QAF使用了自定义方法选择器吗?
要将QAF与AWS设备场集成,可以执行以下步骤。
- 根据AWS提到的,在您的项目中进行所需的配置。请参阅与Appium合作编写AWS设备场文档
- 在程序集zip文件中添加以下文件夹。您可以通过更新
assembly/zip.xml
来添加这些文件夹
<fileSet>
<directory>${project.basedir}</directory>
<outputDirectory>./</outputDirectory>
<includes>
<include>/resources/</include>
<include>/scenarios/</include>
<include>/config/</include>
</includes>
</fileSet>
现在使用
mvn clean package -DskipTests=true
命令构建zip。按照相同的参考链接上传您的测试包zip。
在您的配置yml文件中提供testng-xml的路径。
java -Dappium.screenshots.dir=$DEVICEFARM_SCREENSHOT_PATH org.testng.TestNG "config/testrun_config.xml" -d $DEVICEFARM_LOG_DIR/test-output -verbose 10
- 将QAF结果移动到构建工件文件夹以获取QAF结果
post_test:
commands:
- cd $DEVICEFARM_TEST_PACKAGE_PATH
- cp -R test-results $DEVICEFARM_LOG_DIR
- cp -R img $DEVICEFARM_LOG_DIR
- cp -R img $DEVICEFARM_SCREENSHOT_PATH