当前位置: 首页 > 知识库问答 >
问题:

TestNG——顺序和并行测试脚本的实现

尹乐邦
2023-03-14

我正在使用POM设计为开放式MRS应用程序创建一个演示框架。应用程序的凭据是“admin/Admin123”

我创建了以下3个类:
1)登录测试:包含所有登录(1ve和2ve场景)和注销测试(总共4个@tests)
2)注册患者测试:它将注册患者,并验证患者是否已成功注册(总共3次ve@Tests)
3)捕获生命体征测试:将捕获上述登记患者的生命体征,并验证捕获的细节是否正确。(总共2次ve@测试)

我计划添加更多的类,其中包含与添加访问,添加过敏等相关的测试。

类之间存在依赖关系,即仅当@test for Login通过时才执行Register patient测试。同样,只有在登记患者测试通过时,才能执行剩余的测试,如捕捉生命体征、增加就诊次数、增加过敏反应。然而,捕捉生命体征、增加就诊次数和增加过敏反应之间没有相关性,可以并行运行

这是从顶层来看的:

class Login
    @Test T_001_LoginTest
    @Test T_002_LogoutTest
class RegisterPatient
    @Test T_003_RegisterNewPatient
    @Test T_004_ConfirmPatientRegisteredUsingPatientID (dependent on T_003)
    @Test T_005_ConfirmPatientRegisteredUsingPatientName (dependent on T_003)
class CaptureVitalsTest
    @Test T_006_CreateAVisitAndCaptureVitals (dependent on T_001 and T_003)
    @Test T_007_VerifyVitals (dependent on T_006)

到目前为止,我所做的是为类登录添加定义组“login”,为类注册添加组“registerpatient”。对于类RegisterPatient,我添加了dependsOnGroup“login”。类似地,对于类CaptureVitals,我为“login”和“registerpatient”添加了dependsOnGroups。对于具有“dependsOnMethods”依赖关系的@Test方法,我还设置了alwaysRun=true

下面是我的测试。xml文件

<suite name="Open MRS Automation" parallel="tests">

    <listeners>
        <listener class-name="com.utils.CustomListener" />
    </listeners>

    <test thread-count="5" name="Login Test">
        <classes>
            <class name="com.testcases.LoginTest" />
        </classes>
    </test> <!-- Test -->

    <test thread-count="5" name="Register Patient Tests">
        <classes>
            <class name="com.testcases.RegisterPatientTest" />
        </classes>
    </test>

    <test thread-count="5" name="Capture Vitals Tests">
        <classes>
            <class name="com.testcases.CaptureVitalsTest" />
        </classes>
    </test>

</suite> 

在设置测试的初始顺序和并行执行时,什么是正确的方法?任何帮助都将不胜感激!谢谢。

共有1个答案

虞唯
2023-03-14

您应该按数字给出Testcases方法的名称。您必须使用数据提供程序格式的excel工作表,该格式将帮助您根据Testcases编号运行测试用例

 类似资料:
  • 我有一个包-'脚本' 根据剧本,我有两个类别——甲和乙 在一个类中,我有3个方法(@Test)按顺序编写- 在B班我有一种方法- TestNG. XML 在执行时——作为TestNG套件——右键单击TestNG XML并选择Run as a TestNG Suite 类B首先执行-这是因为类B中的@Test没有指定优先级,因此成为最高优先级 有没有办法让@Test的优先级只在类中起作用?为什么Te

  • 我正在使用@dataprovider TestNG 注释来传递不同的数据集。我的 TestNG 类包含 @BeforeClass、@DataProvider、三种@Test方法(一种使用数据提供程序的测试)和@After类。 数据提供程序包含 3 组数据(用户名和密码) 我只想知道如何按照以下顺序执行测试 --执行@Beforeclass - --转到测试并从数据提供程序打印第二组数据 --执行第

  • 我试图用TestNG并行运行一个示例测试项目。但它是在一个线程中顺序执行的。我漏掉什么了吗? 谢了。

  • 我正在试验如何与maven surefire和testng并行运行测试。然而,配置似乎不是很简单,我无法让它工作。下面是我的虚拟测试。 这是我的surefire配置: 测试基本上是按顺序运行的。以下是日志作为证据: 我的意图是并行运行所有测试(直到方法级别)。那么,我该如何实现呢?

  • 我正在使用testNg硒网格进行测试会话,我对整个东西非常满意 关键是测试的数量正在增长,现在它们至少需要 3 小时才能执行(在 30 个浏览器上进行 -100 次测试) 我计划进行 -150 次测试,所以,正如您可以想象的那样,我必须找到一个解决方案并并行启动它们 我试图玩一下这个,但没有现在很幸运,我现在看到的是两个浏览器启动,但只有一个通过测试。另一个只是等待:-)测试的结构如下,基本上 1

  • 我有一个关于testNG的问题。我有五类测试(a类、b类、c类、d类、e类),并且在每个类中都有3个测试(test1 test2 test3)问题是我在所有测试中都有@Test(组={"吸烟测试"},启用=真,优先级=1)-类a-类a-类a <代码>@测试(组={"吸烟测试"},启用=真,优先级=1) -类b<代码>@测试(组={"吸烟测试"},启用=真,优先级=2) -类b<代码>@测试(组={