<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                前面講的大多都是以測試腳本為基礎來運行的,少部分是以xml運行,這里以xml來講解下: ``` <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="SuiteName" verbose="1" >? ``` 如下分別講解各個標簽: 1、suite標簽 testNG.xml文件的最外層標簽即suite,即測試套件,其下可以有多個<test>和<groups>,其有幾個可以添加的屬性在第十節的分suite測試中有做說明,這里做下詳細說明: (1)、name屬性 此屬性屬于必須要有的,值可以自行設定,此名字會在testNG的報告中看到; (2)、verbose屬性 此屬性為指定testNG報告的詳細程度,從0開始到10,其中10為最詳細,默認生成的xml此屬性值為1; (3)、parallel屬性 此屬性是指代運行方式,默認為none,即串行運行方式;并行執行方法包括如下幾種,下面做分別說明: methods:方法層級,若為此值,則該suite下所有的測試方法都將進行多線程,即測試用例級別的多線程。如果用例之間有依賴,則執行順序會按照設定的依賴來運行; ``` <suite name="My suite" parallel="methods" thread-count="5"> ``` tests:TestNG將在同一線程中運行相同的<Test>標簽中的所有方法,每個<test>標簽都將處于一個單獨的線程中,這允許您將不是線程安全的所有類分組在同一個<test>中,并保證它們都將在同一個線程中運行,同時利用TestNG使用盡可能多的線程運行測試。 ``` <suite name="My suite" parallel="tests" thread-count="5"> ``` classes:類級別并發,即TestNG會將該suite下每個class都將在單獨的線程中運行,同一個class下的所有用例都將在同一個線程中運行; ``` <suite name="My suite" parallel="classes" thread-count="5"> ``` instances:實例級別,即TestNG將在同一線程中運行同一實例中的所有方法,兩個不同實例上的兩個方法將在不同的線程中運行。 ``` <suite name="My suite" parallel="instances" thread-count="5"> ``` (4)、thread-count屬性 此屬性用于指定線程數,按照需要輸入,需要parallel參數非none時才可以添加; (5)、annotations屬性 此項為注解的級別,為methods級別和class級別,一般不用設置; (6)、time-out屬性 此屬性用于指定超時時間,該suite下所有的用例的超時時間; (7)、group-by-instances屬性 此項用于那些有依賴的方法,且被依賴的對象有多個重載對象,因為如果是依賴方法,且該方法有多個重載方法,則默認是會將所有重載方法都跑完再運行被依賴方法,但有時候我們不想這樣,則將此項設置為true即可; (8)、preserve-order屬性 值可輸入true或者false,如果為true,則用例執行會按照在xml中的順序執行,否則會亂序執行,不添加此屬性的話默認是按順序執行的; 2、test標簽 此標簽無特別意義,其下可以包括多個標簽,如groups、classes等,如下介紹下幾種書寫方式: (1)選擇一個包中的全部測試腳本(包含子包) ``` <test name = "allTestsInAPackage" > ? ?<packages> ? ? ? <package name = "whole.path.to.package.* /> ? ?</packages> </test> ``` (2)選擇一個類中的全部測試腳本 ``` <test name = "allTestsInAPackage" > ? ?<packages> ? ? ? <package name = "whole.path.to.package.* /> ? ?</packages> </test> ``` (3)選擇一個類中的部分測試腳本 ``` <test name = "aFewTestsFromAClass" > ? ?<classes> ? <class name="whole.path.to.package.className > ? ? ? <methods> ? ? ? ? ?<include name = "firstMethod" /> ? ? ? ? ?<include name = "secondMethod" /> ? ? ? ? ?<include name = "thirdMethod" /> ? ? ? </methods> ? </class> ? ?</classes> </test> ``` (4)選擇一個包中的某些組 ``` <test name = "includedGroupsInAPackage" > ? ?<groups> ? ? ? <run> ? ? ? ? ?<include name = "includedGroup" /> ? ? ? </run> ? ?</groups> ? ?<packages> ? ? ? <package name = "whole.path.to.package.* /> ? ?</packages> </test> ``` (5)排除一個包中的某些組 ``` <test name = "excludedGroupsInAPackage" > ? ?<groups> ? ? ? <run> ? ? ? ? ?<exclude name = "excludedGroup" /> ? ? ? </run> ? ?</groups> ? ?<packages> ? ? ? <package name = "whole.path.to.package.* /> ? ?</packages> </test> ``` 其可以附帶的屬性有如下幾種,下面對各個屬性做單獨說明: (1)、name屬性 此屬性屬于必須要有的,值可以自行設定,此名字會在testNG的報告中看到; (2)、verbose屬性 此屬性為指定testNG報告的詳細程度,從0開始到10,其中10為最詳細,默認生成的xml此屬性值為1 (3)、threadPoolSize屬性 該屬性指定此test的線程池大小,為數字; ``` <test name = "excludedGroupsInAPackage" > ? ?<groups> ? ? ? <run> ? ? ? ? ?<exclude name = "excludedGroup" /> ? ? ? </run> ? ?</groups> ? ?<packages> ? ? ? <package name = "whole.path.to.package.* /> ? ?</packages> </test> ``` (4)、invocationCount屬性 該屬性指定此test的運行次數,為數字,范例如上面的代碼所示; (5)、time-out屬性 此屬性用于指定超時時間,該suite下所有的用例的超時時間,范例如上面的代碼所示; (6)、group-by-instances屬性 此項用于那些有依賴的方法,且被依賴的對象有多個重載對象,因為如果是依賴方法,且該方法有多個重載方法,則默認是會將所有重載方法都跑完再運行被依賴方法,但有時候我們不想這樣,則將此項設置為true即可; ``` <suite name="Factory" group-by-instances="true"> ``` (7)、preserve-order屬性 值可輸入true或者false,如果為true,則用例執行會按照在xml中的順序執行,否則會亂序執行,不添加此屬性的話默認是按順序執行的; 3、group標簽 此標簽必然是在<test>標簽下的,用于標識那些組會被用于測試或者被排除在測試之外,其同級必然要包含一個<classes>標簽或者<pakages>標簽,用于指定groups來自于哪些包或者類; 如下即為包含一個group,排除一個group的例子: ``` <groups> ? <run> ? ? ?<include name = "includedGroupName" /> ? ? ?<exclude name = "excludedGroupName" /> ? </run> </groups> ``` 高級應用: ``` <test name="Regression1"> ? <groups> ? ? <define name="functest"> ? ? ? <include name="windows"/> ? ? ? <include name="linux"/> ? ? </define> ?? ? ? <define name="all"> ? ? ? <include name="functest"/> ? ? ? <include name="checkintest"/> ? ? </define> ?? ? ? <run> ? ? ? <include name="all"/> ? ? </run> ? </groups> ?? ? <classes> ? ? <class name="test.sample.Test1"/> ? </classes> </test> ``` 4、其他 其他的話就是測試腳本的選擇了,有三種方式: (1)選擇一個包 ``` <packages> ? ? <package name = "packageName" /> </packages> ``` (2)選擇一個類 ``` <classes> ? ? <class name = "className" /> </classes> ``` (3)選擇一個方法 ``` <classes> ? ? <class name = "className" /> ? ? ? ?<methods> ? ? ? ? ? <include name = "methodName" /> ? ? ? ?</methods> ? ? </class> </classes> ``` 這里也支持正則表達式,例如: ``` <test name="Test1"> ? <classes> ? ? <class name="example1.Test1"> ? ? ? <methods> ? ? ? ? <include name=".*enabledTestMethod.*"/> ? ? ? ? <exclude name=".*brokenTestMethod.*"/> ? ? ? </methods> ? ? ?</class> ? </classes> </test> ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看