当前位置: 首页 > news >正文

临淄专业网站优化哪家好g3云推广官网

临淄专业网站优化哪家好,g3云推广官网,wordpress+dns预读,动画设计思路怎么写一、TestNG.xml 是 TestNG 测试框架的核心配置文件,用于组织和控制测试执行。通过它,可以灵活地管理测试套件、测试类、方法,并设置各种执行参数一个基本的 testng.xml文件通常以 ​​DOCTYPE 声明​​开头,并遵循特定的文档类型定…

一、TestNG.xml 是 TestNG 测试框架的核心配置文件,用于组织和控制测试执行。通过它,可以灵活地管理测试套件、测试类、方法,并设置各种执行参数

一个基本的 testng.xml文件通常以 ​​DOCTYPE 声明​​开头,并遵循特定的文档类型定义(DTD)
一个基本的 TestNG.xml 结构如下

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="SuiteName"><test name="TestName"><classes><class name="com.example.TestClass1"/><class name="com.example.TestClass2"/></classes></test>
</suite>

二、 下面详细解释其主要结构和用法。

2.1 < suite >

根标签,代表一个测试套件。可设置 name(套件名,必填)、parallel(并行模式,如 none/methods/tests/classes)、thread-count(线程数)等属性

name​​ (必填): 套件或测试的名称,会显示在报告中
​​verbose​​: 控制台输出的详细等级,0-10,数字越大越详细。
​​parallel​​: 指定并行模式,TestNG 7.0+版本默认parallel=“none”(即false)、methods、tests、classes、instances。​​必须​​与 thread-count配套使用。
​​thread-count​​: 并行执行时的最大线程数。
​​data-provider-thread-count​​: 并发时数据提供者的线程池大小。
​​preserve-order​​: 是否按 XML 中的顺序执行测试,默认为 true。

<suite name="MyTestSuite" verbose="1" parallel="tests" thread-count="3" data-provider-thread-count="10"><test name="RegressionTest1"><!-- 配置内容 --></test><test name="SmokeTest"><!-- 配置内容 --></test>
</suite>

2.2 < test>

定义测试模块,包含具体的测试类或包
name(必填): 测试的名称。
同样可以设置 parallel, thread-count等属性,其设置会覆盖 suite 级别的同名属性

<test name="Example"><classes><class name="com.example.TestClass1"><methods><include name="testMethod1"/> <!-- 只运行 testMethod1 --><exclude name="testMethod2"/> <!-- 排除 testMethod2 --></methods></class><class name="com.example.TestClass2"/> <!-- 运行 TestClass2 中的所有测试方法 --></classes><!-- 或者使用 packages --><packages><package name="com.example.integrationtests"/> <!-- 运行指定包及其子包下所有测试类 --></packages>
</test>

2.3< parameter>

​​用于定义参数,这些参数可以通过 @Parameters注解在测试类中获取。可以声明在 < suite>或 < test>级别,test 级别的参数会覆盖 suite 级别的同名参数。

<suite name="ParameterSuite"><parameter name="env" value="staging"/> <!-- suite级别参数 --><test name="ParameterTest"><parameter name="username" value="testuser"/> <!-- test级别参数 --><classes><class name="com.example.LoginTest"/></classes></test>
</suite>

在测试类中:

public class LoginTest {@Test@Parameters({"env", "username"})public void testLogin(String environment, String user) {// 使用参数进行测试System.out.println("Running in env: " + environment + " with user: " + user);}
}

2.4< groups>

用于定义要运行或排除的测试组
位于 < test>标签下。使用 < run>, < include>, < exclude>来精细控制哪些组的测试方法需要执行
还可以使用 < define>来组合已有的组,形成新的逻辑组

<test name="GroupTest"><groups><define name="all"> <!-- 定义一个新的组组合 --><include name="smoke"/><include name="regression"/></define><run><include name="all"/> <!-- 运行自定义的组组合 --><exclude name="broken"/> <!-- 排除标记为broken的测试 --></run><!-- 还可以定义组依赖 --><dependencies><group name="final-test" depends-on="smoke regression"/></dependencies></groups><classes><class name="com.example.*"/> <!-- 运行指定包下所有类的测试 --></classes>
</test>

2.5< classes>

< classes>用于指定具体的类,还可以在类下通过 < methods>元素包含或排除特定方法。

<suite name="ParallelSuite" parallel="classes" thread-count="5">
<!-- parallel="methods": 所有测试方法在不同线程并行执行 -->
<!-- parallel="tests": 不同<test>下的方法在不同线程执行 -->
<!-- parallel="classes": 不同<class>下的方法在不同线程执行 -->
<!-- parallel="instances": 相同实例的方法在不同线程执行 --><test name="ParallelTest"><classes><class name="com.example.TestClass1"/><class name="com.example.TestClass2"/></classes></test>
</suite>

2.6< packages>

< packages>用于指定整个包,TestNG会自动扫描该包下所有带有TestNG注解的类。

<test name="Example"><classes><class name="com.example.TestClass1"><methods><include name="testMethod1"/> <!-- 只运行 testMethod1 --><exclude name="testMethod2"/> <!-- 排除 testMethod2 --></methods></class><class name="com.example.TestClass2"/> <!-- 运行 TestClass2 中的所有测试方法 --></classes><!-- 或者使用 packages --><packages><package name="com.example.integrationtests"/> <!-- 运行指定包及其子包下所有测试类 --></packages>
</test>

2.7< methods>

​​在类中指定要包含或排除的具体方法

2.8< listeners>

用于配置监听器,这些监听器可以监听测试执行过程中的各种事件(如测试开始、结束、失败等),用于扩展测试行为,如生成自定义报告

<suite name="ListenerSuite"><listeners><listener class-name="com.example.myutil.MyTestListener"/> <!-- 自定义监听器 --></listeners><test name="TestWithListener"><classes>...</classes></test>
</suite>

三、这是一个综合了多种元素的 testng.xml示例:

3.1

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="ComprehensiveSuite" parallel="tests" thread-count="3" verbose="2"><parameter name="env" value="staging" /> <!-- Suite level parameter --><test name="SmokeTest" preserve-order="true"><parameter name="browser" value="chrome" /> <!-- Test level parameter, overrides suite level if same name --><groups><run><include name="smoke"/><exclude name="broken"/></run></groups><classes><class name="com.example.tests.LoginTest"><methods><include name="testValidLogin"/><exclude name="testInvalidLogin"/></methods></class><class name="com.example.tests.HomePageTest"/></classes></test><test name="RegressionTest"><packages><package name="com.example.regression.*"/></packages></test><listeners><listener class-name="com.example.listeners.MyTestListener"/></listeners>
</suite>

3.2

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="ECommerce_Regression_Suite" verbose="2" parallel="tests" thread-count="3" data-provider-thread-count="2"><!-- 全局参数 --><parameter name="env" value="staging"/><parameter name="browser" value="chrome"/><parameter name="timeout" value="30"/><!-- 监听器配置 --><listeners><listener class-name="com.qa.listeners.ExtentReportListener"/><listener class-name="com.qa.listeners.TestListener"/></listeners><!-- 冒烟测试套件 --><test name="Smoke_Test" preserve-order="true"><groups><run><include name="smoke"/><exclude name="broken"/> <!-- 排除标记为broken的测试 --></run></groups><classes><class name="com.qa.tests.LoginTest"/><class name="com.qa.tests.SearchTest"/><class name="com.qa.tests.CartTest"/></classes></test><!-- 登录模块测试 - 并行执行 --><test name="Login_Module_Tests" parallel="methods" thread-count="2"><parameter name="browser" value="firefox"/> <!-- 覆盖全局参数 --><classes><class name="com.qa.tests.LoginTest"><methods><include name="testValidLogin"/><include name="testInvalidLogin"/><exclude name="testExpiredPassword"/> <!-- 排除特定方法 --></methods></class><class name="com.qa.tests.RegistrationTest"/></classes></test><!-- 支付流程测试 - 按包运行 --><test name="Payment_Flow_Tests"><groups><run><include name="payment"/><include name="p1"/> <!-- 包含多个组 --></run></groups><packages><package name="com.qa.tests.payment.*"/> <!-- 运行包内所有测试类 --></packages></test><!-- API测试套件 --><test name="API_Tests" enabled="true"> <!-- enabled可控制是否执行此test --><parameter name="base_url" value="https://api.ecommerce.com/v1"/><classes><class name="com.qa.api.tests.UserAPITest"/><class name="com.qa.api.tests.ProductAPITest"/><class name="com.qa.api.tests.OrderAPITest"/></classes></test></suite>
http://www.dtcms.com/a/495112.html

相关文章:

  • python离线包安装方法总结
  • Docker网络和存储卷
  • REFRAG技术详解:如何通过压缩让RAG处理速度提升30倍
  • C++ stack、queue栈和队列的使用——附加算法题
  • 论文解读--RCBEVDet++:Toward High-accuracy Radar-Camera Fusion 3D Perception Network
  • 网站建设公司 温州百度优化大师
  • Kubernetes:Ingress - Traefik
  • 自然的铁律与理想的迷梦:论阿伦特政治哲学的局限与谬误​​
  • 电商网站创办过程建站员工网站
  • Oracle数据库安全参数优化
  • 亚马逊云代理:利用亚马逊云进行大规模数据分析与处理的最佳实践
  • 生成链接的网站网站超链接用什么
  • 网站英文域名是什么django类似wordpress
  • 本地搭建EXAM-MASTER考试系统
  • 高级运维工程师面试题汇总-【DEVOPS】
  • 东莞浩智网站建设开发wordpress 中国地图
  • 【Go】C++ 转 Go 第(一)天:环境搭建 Windows + VSCode 远程连接 Linux
  • MYSQL学习笔记(个人)(第十五天)
  • 网站登录验证码不正确云端互联网站建设
  • Zotero安装+坚果云+iPad同步方法及问题整理
  • 做彩票网站的方案网站建设资金报告
  • 基于路由器,不同域的网络A和网络B之间如何通信?
  • 【小白笔记】编程概念用最直白的方式解释
  • Docker 容器化部署 Node.js 详细手册
  • 浅析cef在win和mac上的适配
  • 营销型网站一般有哪些内容珠海公司网站建设
  • PHP 空指针引用:潜藏在运行时的
  • Android 中 Padding 与 Margin 的深度解析:从概念到实战区分
  • 关于dtoj 177 谐振之石的一些反思
  • UniverSheets最新版本测试