TestNG执行测试用例的方法

TestNG是一个非常好用d自动化测试框架,对于经常使用seleniumweb端UI测试的童鞋来说是个不错的工具。

  具备基本常识的测试童鞋们,可能需要知道存在即合理,存在即有用的道理。任何一个工具,或者一件事的存在如果令人得不到益处,那么是不会有人继续使用的。这个常识基本上人人都懂。

  在自动化测试,TestNG是个非常好用的框架。在实际项目中,会有成千上百个测试用例进行执行,这时候需要用到并发执行测试。在TestNG中,提供了很好的并发执行的方法。下面从4个方面来理一下:

  TestNG对并发执行的处理。

  1. TestNG并发执行测试的实现方法【Suite.xml, testng.xml etc 】

  2. TestNG并发执行测试的测试用例执行顺序控制[ preserve-order, priority ] 

  3. TestNG并发执行测试用例的优先级控制 [ priority = 0, 1, 2, 3, 4 ....] 

  4. 设置TestNG对某些测试用例作为选测或者忽略测试的控制【optional 】

  下面详细具体来说。

1.  TestNG里有suite的概念,即可以把多个测试用例放在一个***testng.xml的XML文件中执行,里面有定义好的要测的测试用例。举个栗子。

<suite name="Test-class Suite" parallel="tests" thread-count="2">

           <test name="test-method One">

            <parameter name="test-name" value="test-method One" />

             <classes>

                 <class name="testngcase.ParallelSuiteTest" />

             </classes>

          </test>

         <test name="test-method Two">

          <parameter name="test-name" value="test-method Two" />

           <classes>

             <class name="testngcase.ParallelSuiteTest" />

          </classes>

        </test>

      </suite>

在测试项目目录下创建xml文件,设定好要测试的测试用例,如上码好,不要遗漏。同时,这里需要在类方法里有对应的@BeforeTest注解,和@Parameters({"param-name"})来完成测试用例到XML文件的

  照应关系,注意param-name必须跟xml文件里的parameter name值 1 1对应。好了,这样就完成一个并发用例的执行,右键Run As TestNG class即可。

  2. 如果想要进一步的对测试套集里的测试用例执行顺序进行限定和设置的话,那么可以用到TestNG的另一个属性preserve-order, 当preserve-order="true", 表示测试用例按照XML文件里所列的顺序进行顺序执行,当preserve-order="false"时,表示测试用例不会按照XML文件里的顺序进行顺序执行,即会有乱序执行。

<xml version="1.0" encoding="UTF-8" > 
   <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">  
     <suite name="test_testng">  
        <test name="test" preserve-order="true">    
            <classes>  
                <class name="testngcase.ParallelClassesTestOne"></class>
                <class name="testngcase.ParallelClassesTestTwo"></class>
            </classes>  
        </test>  
   </suite>

如上一个使用preserve-order来控制测试用例执行的顺序的xml文件,实际执行的时候,将会按照上面给定的顺序1次执行ParallelClassesTestOne, ParallelClassesTestTwo两个测试用例。

3. 如果还想有其他的自如控制用例执行顺序的需求,那么TestNG提供了一个priority关键字,可以自行设定。具体见栗子。

@Test(priority=1)
     public void testMethodOne() {
       long id=Thread.currentThread().getId();
      System.out.println("Sample test-method One. Thread id is:"+id);
     }
     @Test(priority=2)
     public void testMethodTwo() {
      long id=Thread.currentThread().getId();
      System.out.println("Sample test-method Two. Thread id is:"+id);
     }

上面两个测试方法上分别在@Test后加了priority=*的设定,通过设定priority的值来控制方法执行的顺序,值越大,执行顺序越靠后。

4. 其他有助于测试用例的执行的关键字,对于执行用例时因为各种因素可能出现的状况而不能执行时,可以采用在@Test(enabled=false)设定来忽略某些测试方法。

 @Test(enabled=false)
         public void testMethodTwo() {
            long id=Thread.currentThread().getId();
           System.out.println("Sample test-method Two. Thread id is:"+id);
          }

这样做了标注后就达到里忽略此测试方法的目的。      

另外一个关键字,@Optional通常用在@Parameters相关的测试方法下,对于在xml文件中没有对参数值给出值的参数,给出一个备选的值,以免执行出现问题。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/537208.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端大屏项目适配方法

要在F11全屏模式下查看 方法一&#xff0c;rem font-size 动态设置HTML根字体大小 和 body 字体大小&#xff08;lib_flexible.js&#xff09; 将设计稿的宽&#xff08;1920&#xff09;平均分成 24 等份&#xff0c; 每一份为 80px。HTML字体大小就设置为 80 px&#xff…

C/C++ 配置 jemalloc 的一些选项,处理一些疑似内存泄漏的问题。

在 jemalloc 之中有三种配置 jemalloc 选项的一些方式。 1、修改选项代码默认值&#xff08;重新编译&#xff09; 2、修改环境变量 MALLOC_CONF&#xff0c;并重启应用程序 注意&#xff1a; 仅支持 opt. 节配置选项 export MALLOC_CONF"retain:true,dirty_decay_ms:2…

什么是图神经网络?

什么是图神经网络&#xff1f; GNN 将深度学习的预测能力应用于丰富的数据结构&#xff0c;这些数据结构将对象及其关系描述为图中由线连接的点。 当两种技术融合时&#xff0c;它们可以创造出新奇而美妙的东西——比如手机和浏览器融合在一起打造智能手机。 如今&#xff0…

初学网络编程

网络编程是指编写能够在网络环境中运行&#xff0c;进行数据通信的程序的过程。它涵盖了从建立网络连接、发送和接收数据&#xff0c;到关闭连接等一系列操作。网络编程是开发网络应用程序的基础&#xff0c;它使得不同的计算机和设备能够通过网络进行数据交换和通信。 三个核…

《手把手教你》系列基础篇(八十三)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-下篇(详解教程)

宏哥微信粉丝群&#xff1a;https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 其实前边好像简单的提到过测试报告&#xff0c;宏哥觉得这部分比较重要&#xff0c;就着重讲解和介绍一下。报告是任何测试执行中最重要的部分&#xff0c;因为它可以帮助用户了…

Flask快速搭建文件上传服务与接口

说明&#xff1a;仅供学习使用&#xff0c;请勿用于非法用途&#xff0c;若有侵权&#xff0c;请联系博主删除 作者&#xff1a;zhu6201976 一、需求背景 前端通过浏览器&#xff0c;访问后端服务器地址&#xff0c;将目标文件进行上传。 访问地址&#xff1a;http://127.0.0…

Java 中文官方教程 2022 版(三)

原文&#xff1a;docs.oracle.com/javase/tutorial/reallybigindex.html 对象 原文&#xff1a;docs.oracle.com/javase/tutorial/java/javaOO/objects.html 一个典型的 Java 程序会创建许多对象&#xff0c;正如您所知&#xff0c;这些对象通过调用方法进行交互。通过这些对象…

前端开发攻略---简化响应式设计:利用 SCSS 优雅管理媒体查询

1、演示 2、未优化前的代码 .header {width: 100px;height: 100px;background-color: red; } media (min-width: 320px) and (max-width: 480px) {.header {width: 10px;} } media (min-width: 320px) and (max-width: 480px) {.header {height: 20px;} } media (min-width: 48…

详细介绍微信小程序app.js

这一节&#xff0c;我们详细介绍app.js 这个文件。这个文件的重要性我就不再赘述&#xff0c;前面已经介绍了。 一、app.js是项目的主控文件 任何一个程序都是需要一个入口的&#xff0c;就好比我们在学c的时候就会有一个main函数&#xff0c;其他语言基本都是一样。很明确的…

隆道商机订阅服务|“您有一条新的商机,请注意查收”

隆道商机订阅服务 自定义关键词&#xff0c;智能甄别商机&#xff0c;随时随地查看&#xff0c;多平台实时推送。 核心功能 商机无限查 您可以根据不同的维度&#xff0c;如项目类型、项目地区等&#xff0c;对招标采购信息进行查询和筛选&#xff0c;以精准查找全网范围内的…

【Spring源码】JDBC数据源访问实现

一、阅读线索 开始我们今天的对Spring的【模块阅读】&#xff0c;来看看Data Access的JDBC模块是怎么设计的。 源码阅读前&#xff0c;我们要先思考下本次的阅读线索&#xff1a; JDBC模块有什么作用该模块是怎么设计的我们从这个模块可以学到什么 二、探索 关于阅读线索一…

Python实现BOA蝴蝶优化算法优化Catboost回归模型(CatBoostRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

十分钟到底能不能讲明白ROS到底能做啥

总结 录完视频发现十分钟不能&#xff0c;总共花了20分钟。 提纲&#xff1a; 课程、竞赛、论文Linux、C、Python、Github和ROS关联性强平台-资格和ROS关联性弱速度-成绩路径规划-全局和局部全局-侧重路径长短-找一条最优&#xff08;短&#xff09;的路局部-侧重速度控制-用…

数据可视化-ECharts Html项目实战(10)

在之前的文章中&#xff0c;我们学习了如何在ECharts中编写雷达图&#xff0c;实现特殊效果的插入运用&#xff0c;函数的插入&#xff0c;以及多图表雷达图。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&…

Python基于Django的微博热搜、微博舆论可视化系统,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

host文件nginx代理 综合理解

之前一直理解得很糙 导致遇到问题很迷糊 今天经过大佬两句话讲明白了 特此记录 host文件 首先host做了代理 也就是对浏览器的DNS寻址做了拦截 具体原理可以参照当我们在地址栏输入URL的时候浏览器发生了什么 例如127.0.0.1 www.baidu.com 将 127.0.0.1 www.baidu.com 链接自…

春游江淮|出发,上宁国“村游”去

竹川村、赤岸村打卡佳处&#xff0c;春花烂漫,春意盎然,胡乐镇竹川村、赤岸村的油菜花,是宁国春天不可错过的风光。等大片大片的油菜花盛放,与悠悠远山交相辉映,可以来此骑行、散步,静静欣赏美好的春日风光。 山门村 世外桃源经过奇特的“山门洞”,来到山门村,村内古木参天,在春…

Cloudshark数据包分析功能介绍

什么是CloudShark CloudShark是一种基于Web的数据包分析平台&#xff0c;可以认为是wiresshark的cloud版本&#xff0c;但是其在威胁分析等方面比Wireshark的功能强大&#xff0c;如下是他们的主要区别。 Wireshark VS Cloudshark Wireshark定位是一款本地开源的网络数据包分…

2024年第十四届MathorCup数学应用挑战赛B题解题思路

B题https://mbd.pub/o/bread/ZZ6Wm5dx 问题1:对于附件I(Pre_test文件夹)给定的三张甲骨文原始拓片图 片进行图像预处理&#xff0c;提取图像特征&#xff0c;建立甲骨文图像预处理模型&#xff0c;实现对 甲骨文图像干扰元素的初步判别和处理。 针对问题1&#xff0c;对于附件…

考虑预同步的虚拟同步机T型三电平逆变器并离网MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介 三相 T 型三电平逆变器电路如图所示&#xff0c;逆变器主回路由三个单相 T 型逆变器组成。 直流侧输入电压为 UPV&#xff0c;直流侧中点电位 O 设为零电位&#xff0c;交流侧输出侧是三相三线制连…