一、 Concurrenttesting:

下面的例子是输出进程ID,threadPoolSize用来指明线程池的大小,也就是并发的线程数目是多少

5次调用,有3个线程可调用

  1. @Test(invocationCount = 5, threadPoolSize = 3,groups = { "t9"})
  2. public void smallThreadPool() {
  3. System.out.println("Thread#: " +Thread.currentThread().getId());
  4. }

页面输出

[TestNG]Running:

E:\Android\selenium\test_wdng_java\src\testing.xml

Thread#:13

Thread#:15

Thread#: 14

Thread#:15

Thread#:15

===============================================

Suite

Totaltests run: 5, Failures: 0, Skips: 0

===============================================

若改成5次调用,有5个线程可调用

Thread#:10

Thread#:14

Thread#:12

Thread#:11

Thread#:13

二、Concurrentrunning of tests

TestNG可以以多线程的模式运行所有的test,这样可以获得最大的运行速度,最大限度的节约执行时间。当然,并发运行也是有代价的,就是需要我们的代码是线程安全的。

并发运行测试的话,需要我们指定运行的配置文件,一个示例如下:

  1. <suite name="Concurrent Suite" parallel="methods" thread-count="2" verbose="1" >
  2. <>……<>
  3. </suite>

1.Parallel=”methods”的意思是指TestNG会将method作为并发的元子单位,即每个method运行在自己的thread中。如果parallel=”tests”,则指会将test 作为并发的元子单位

2.Thread-count=”2”是指,运行的时候,并发度为2,同时会有两个线程在运行。

例如:

  1. @Test(groups = { "t8"})
  2. public void aThreadPool() {
  3. System.out.println("#ThreadA: " +Thread.currentThread().getId());
  4. }
  5. @Test(groups = { "t8"})
  6. public void bThreadPool() {
  7. System.out.println("#ThreadB: " +Thread.currentThread().getId());
  8. }
  9. @Test(groups = { "t8"})
  10. public void cThreadPool() {
  11. System.out.println("#ThreadC: " +Thread.currentThread().getId());
  12. }

--------------------------------------------------------------------

<testname="Test" parallel="methods"thread-count="2">

输出结果:

#ThreadB:11

#ThreadC:11

#ThreadA:10

===============================================

Suite

Totaltests run: 3, Failures: 0, Skips: 0

===============================================

改成<testname="Test" parallel="tests" thread-count="2">

页面输出(因为aThreadPool(),bThreadPool(),cThreadPool()都在一个test下面)

#ThreadA:1

#ThreadB:1

#ThreadC:1

===============================================

Suite

Totaltests run: 3, Failures: 0, Skips: 0

===============================================

本文转载自http://blog.sina.com.cn/bestfeiyong

TestNG 八 并发测试的更多相关文章

  1. 用代码触发testng实现并发测试

    有时候希望测试用例能用代码触发,发现testng支持这种操作,于是记录一下: 首先添加testng依赖: <dependency> <groupId>org.testng< ...

  2. 使用 TestNG 并发测试 ;

    使用TestNG对IE /Chrome/firefox 进行兼容性并发测试 : package testNGTest; import org.openqa.selenium.By; import or ...

  3. selenium从入门到应用 - 8,selenium+testNG实现多线程的并发测试

    本系列所有代码 https://github.com/zhangting85/simpleWebtest本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下s ...

  4. testng并发测试与测试并发

    一.testng并发测试 通过xml文件中suit结点的parallel属性指定,如 <suite name="bundle-module-testabc" parallel ...

  5. Java自动化测试框架-11 - TestNG之annotation与并发测试篇 (详细教程)

    1.简介 TestNG中用到的annotation的快速预览及其属性. 2.TestNG基本注解(注释) 注解 描述 @BeforeSuite 注解的方法只运行一次,在当前suite所有测试执行之前执 ...

  6. Jmeter对HTTP请求压力测试、并发测试的简单使用方法

    对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去尝试了解测试的知识. 首先我们的需求场景如下: 服务器硬件:(只有一台) 系统:Windows 2003 WebServer:Tomca ...

  7. testng多线程并行执行测试

    testng多线程并行执行测试 testng多线程并行执行测试 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者子组件的能力.TestNG允许我们以 ...

  8. Selenium & Webdriver 远程测试和多线程并发测试

    Selenium & Webdriver 远程测试和多线程并发测试 Selenium Webdriver自动化测试,初学者可以使用selenium ide录制脚本,然后生成java程序导入ec ...

  9. Jmeter对HTTP请求压力测试、并发测试

    最近公司需要开发一个简单的报名系统,供外网用户提供报名服务,由于我们公司是个初创的微型公司,开发人员都是刚毕业不久,开发经验相当缺乏. 对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去 ...

随机推荐

  1. UnicodeEncodeError: 'gbk' codec can't encode character ...

    使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character ' ...

  2. python链接mysql以及mysql中对表修改的常用语法

    MySQL是一个关系型数据库管理系统 ,其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库.在使用过程中不总是和它打交道,导致使用时候都得 ...

  3. Linux操作命令(五)

    find . -name ”*.c" -exec ./command.sh {} \; 本次实验将介绍 Linux 命令中 find 和 xargs 命令的用法. find xargs 1. ...

  4. python调试工具----pycharm快捷键及一些常用设置

    pycharm快捷键及一些常用设置 Alt+Enter 自动添加包Ctrl+t SVN更新Ctrl+k SVN提交Ctrl + / 注释(取消注释)选择的行Ctrl+Shift+F 高级查找Ctrl+ ...

  5. js跨域请求实现

    js代码 var url = zfba2url + "/fzyw/xzfy/smcl/autoUpdateByWS.action"; var data = { "writ ...

  6. 关于ARM的开发环境IAR工程的配置问题

    1设置路径使IAR能够自动关联你的头文件 a.将自己的头文件..c文件..s文件放在不同的文件当中.(此处的.C文件和.S文件以及头文件都是开始一个项目所必须有的文件.例如每一个项目都需要对UArt串 ...

  7. Hydra 8.4/8.5新增功能

    Hydra 8.4/8.5新增功能   Kali Linux 2017.1自带的Hydra为8.3,现在Hydra升级到8.5,新增以下功能.   (1)为输出文件选项-o,添加一个配套选项-b,允许 ...

  8. Redux-react connect 源码自己重写

    import Counter from '../components/Counter'; import { increment, decrement, incrementIfOdd, incremen ...

  9. 【拓展Lucas】模板

    求\(C_n^m \mod p\),写得太丑了qwq. 第一次写拓展Lucas竟然是在胡策的时候qwq写了两个半小时啊_(:з」∠)还写挂了一个地方qwq 当然今天胡策我也是第一次写中国剩余定理(ˇˍ ...

  10. [BZOJ2726][SDOI2012]任务安排(DP+凸壳二分)

    2726: [SDOI2012]任务安排 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1580  Solved: 466[Submit][Statu ...