日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了QAF|如果依賴場景失敗,則運行場景應跳過的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

QAF是否支持開箱即用的依賴方案選項?我在下面的鏈接中看到,DependsOnMethods不起作用,不受支持。

https://github.com/qmetry/qaf/issues/281

如果QAF中沒有現成的Dependent Scenario選項,我們是否可以編寫一個自定義函數來檢查Dependent Scenario的結果,并在Dependent Scenario失敗時跳過正在執行的場景?過去的任何帖子或指導都將非常有幫助。

注意:我正在使用BDDTestFactory2。

#

已在TestNG Listner中嘗試以下代碼,但它沒有跳過測試。

@Override
    public void onTestStart(ITestResult result) {
        if (dependentTc == "fail") {
            resultOperation(result, "skipped");
            throw new SkipException("################# Testing skip - Triggered. #################");

        }
}

以下摘自控制臺日志:

org.testng.SkipException: ################# Testing skip - Triggered. #################
        at com.rt.listener.rt_listener.onTestStart(rt_listener.java:117)
        at org.testng.internal.Invoker.runTestListeners(Invoker.java:1724)
        at org.testng.internal.Invoker.runTestListeners(Invoker.java:1699)
        at org.testng.internal.Invoker.invokeMethod(Invoker.java:622)
        at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)
        at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)
        at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
        at org.testng.TestRunner.privateRun(TestRunner.java:756)
        at org.testng.TestRunner.run(TestRunner.java:610)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
        at org.testng.SuiteRunner.run(SuiteRunner.java:289)
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1218)
        at org.testng.TestNG.runSuites(TestNG.java:1133)
        at org.testng.TestNG.run(TestNG.java:1104)
        at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:122)
        at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92)
        at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:101)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
        at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
        at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172)
        at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:104)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70)

推薦答案

用Java編寫的測試/場景支持測試依賴。

讓BDD中的場景之間存在依賴關系不是一個好主意,一種可能的方法是在After方法中設置標志,并使用TestNGlistener在之前方法中檢查標志。假設場景2依賴于場景1,

確保功能文件中的順序正確
在After方法檢查測試名稱或元數據是否為Scenario-1且狀態為FAIL中,將標志let SAYmy-precondition設置為false
在方法前檢查測試名稱或元數據是否為Scenario-2且my-precondition是否為false中,引發SkipExeption

上述方法也可能有副作用。

如果您希望在使用BDD的同時利用測試依賴,RuntimeScenarioFactory支持。它的好處是,它不需要單獨的功能文件。如果您出于任何原因需要有特征文件,您可以使用Behavior Generator生成特征文件。此外,與功能文件中的方案相比,使用RuntimeScenarioFactory可以獲得更多編程控制。

您還可以在功能文件(場景)中進行測試組合,以及在Java文件中進行測試(使用RounmeScenarioFactory)。兩者具有相同的功能,例如:詳細報告、演練、數據驅動、元數據、元數據篩選等。

編輯:
下面的例子對我來說很好。

功能文件示例:

@smoke
Feature: scenario with dependency

@TestCaseId:Test-111
Scenario: scenario1
    Given COMMENT: "some situation"
    When process data
    Then verify update address response with {'addr1':'123 main st'}
    
@dependsOnMethods:['scenario1']
@TestCaseId:Test-112
Scenario: scenario2
    Given COMMENT: "some situation"
    When COMMENT: "some_action_performed"
    Then COMMENT: "it_should_have_some_behavior"

示例偵聽程序,如果一個或多個方案失敗,將跳過該方案所依賴的方案。

package qaf.example.listener;
...
public class DependecyListener implements ITestListener{
    
    @Override
    public void onTestStart(ITestResult result) {
        ITestNGMethod method = result.getMethod();
        String[] methodsDependedUpon = method.getMethodsDependedUpon();
        if (method.isTest() && null != methodsDependedUpon && methodsDependedUpon.length > 0) {
            List<String> methodsDependedUponLst = Arrays.asList(methodsDependedUpon);
            IResultMap failedTests = result.getTestContext().getFailedTests();
            List<ITestResult> falildMethodsDependedUpon = failedTests.getAllResults().stream()
                    .filter(t -> methodsDependedUponLst.contains(t.getName())).collect(Collectors.toList());
            if(!falildMethodsDependedUpon.isEmpty()) {
                throw new SkipException("Skipped because of dependency failure!");
            }
        }
    }
}

在您的XML配置文件中添加偵聽器&gt;

    <listeners>
        <listener class-name="qaf.example.listener.DependecyListener" />
    </listeners>

這篇關于QAF|如果依賴場景失敗,則運行場景應跳過的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:QAF 依賴 場景 失敗 跳過 運行
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定