亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Selenium、TestNG xml 文件,如果在不同的類文件中添加相同的優先級,則按執行順序發出

Selenium、TestNG xml 文件,如果在不同的類文件中添加相同的優先級,則按執行順序發出

UYOU 2021-08-13 17:18:08
我正在使用帶有 TestNG 框架的 selenium WebDriver。在 xml 文件中,我調用了兩個包含 2 個測試的類文件。我為每個班級的測試添加了優先級。但它總是以相同的優先級執行來自不同類的所有測試。一級package demo;import org.testng.annotations.Test;public class testing1 {    @Test(priority = 1)    public void test1(){        System.out.println("Test one");    }    @Test(priority = 2)    public void test2(){        System.out.println("Test two");    }}二班package demo;import org.testng.annotations.Test;public class testing2 {    @Test(priority = 1)    public void test3(){        System.out.println("Test Three");    }    @Test(priority = 2)    public void test4(){        System.out.println("Test Four");    }}xml文件<?xml version = "1.0" encoding = "UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" ><suite name="CavionTestSuit">    <test name="Testing11">        <classes>            <class name="demo.testing1"></class>            <class name="demo.testing2"></class>        </classes>    </test></suite> 在這里,我得到的輸出為:Test oneTest ThreeTest twoTest Four如何根據添加的優先級在每個班級中一起運行測試。我的預期輸出是:Test oneTest twoTest ThreeTest Four如果我將第二個類的優先級添加為 3 和 4,它將按照 xml 文件中給出的順序執行。但是對于具有多個類和測試的項目是不可行的。
查看完整描述

2 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

當 testng 線程空閑并選擇測試用例時,將執行測試。

在您的情況下,線程在 testing1 類中查找測試用例,并找到優先級為 1 的測試用例,線程將被方法 test1 占用,一旦執行完 test1,線程將空閑并尋找另一個測試用例執行,它在測試2類中發現另一個優先級為1的測試用例,因此線程占用了test3方法而不是test2方法

請注意,當使用testng.xml執行時,優先級不限于class級別,會分析整體優先級,first class first優先執行

請使用下面的行來檢查它正在執行的線程

System.out.println("Test Case three with Thread Id:- "+ Thread.currentThread().getId());

要實現您的場景,您可以通過兩種方式實現

-- 在測試級別刪除優先級,然后您的測試類將按順序執行。

-- 將 testing2 類中的測試用例重新排序為優先級 3 和優先級 4


查看完整回答
反對 回復 2021-08-13
  • 2 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號