【发布时间】:2020-02-20 20:57:57
【问题描述】:
我正在使用 POM 设计为 Open MRS Application 创建一个演示框架。应用程序的凭据是“admin/Admin123”
我创建了以下 3 个类:
1) 登录测试:其中包含所有登录(1 +ve 和 2 -ve 场景)和注销测试(总共 4 个 @Tests)
2)注册患者测试:将注册患者并验证患者是否已成功注册(总计 3 +ve @Tests)
3) 采集生命体征测试:采集上述患者的生命体征并验证采集的详细信息是否正确。 (总共 2 +ve @Tests)
我计划添加更多课程,其中将包含与添加访问、添加过敏等相关的测试。
类之间存在依赖关系,即仅在 @Test for Login 通过时才执行注册患者测试。同样,仅当注册患者测试通过时,才执行其余测试,例如捕获生命体征、添加访问、添加过敏。但是,采集生命体征、添加访问和添加过敏之间没有依赖关系,可以并行运行。
这是从顶层看的样子:
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)
到目前为止,我所做的是为类登录添加了定义组“登录”,为类注册添加了组“注册病人”。对于RegisterPatient 类,我添加了dependOnGroup“登录”。同样,对于 CaptureVitals 类,我为“login”和“registerpatient”添加了dependOnGroups。我还为具有“dependsOnMethods”依赖项的@Test 方法设置了 alwaysRun = true。
下面是我的 testng.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>
设置初始顺序然后并行执行测试的正确方法是什么?任何帮助,将不胜感激!谢谢。
【问题讨论】: