一、 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. 【剑指offer】面试题 65. 不用加减乘除做加法

    面试题 65. 不用加减乘除做加法 题目描述 题目:写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. Java 实现 public class Solution {    ...

  2. HDU 1097.A hard puzzle-快速幂/取模

    快速幂: 代码: ll pow_mod(ll a,ll b){      ll ans=;      while(b){          ==){              ans=ans*a%mo ...

  3. 洛谷P1730最小密度路径

    题目传送门; 首先理解题目,究其本质就是一个最短路问题,而且数据范围贼水,用floyd完全没问题,但是题目有变化,要求出路径边权值与边数之比,这里就可以考虑在把floyd中的二维数组变为三维,f[ i ...

  4. Ghostscript 中 ps2pdf 命令在 windows msys 下的运行错误问题。

    前两天看到了 miloyip/game-programmer 这个项目觉得特别有用,真是好东西,明确了指出了学习路线,尤其是新手.不过打开看,有些书对应的亚马逊链接是无效的,比如<Tricks ...

  5. 洛谷——P3905 道路重建

    P3905 道路重建 题目描述 从前,在一个王国中,在n个城市间有m条道路连接,而且任意两个城市之间至多有一条道路直接相连.在经过一次严重的战争之后,有d条道路被破坏了.国王想要修复国家的道路系统,现 ...

  6. 洛谷——P1223 排队接水

    P1223 排队接水 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行, ...

  7. 简单说明CentOS源码安装程序

    第一步.安装依赖包.一般官网会有依赖关系,没有就网上搜索一下. 第二步.下载源码包,上传至CentOS服务器 第三步.解压缩 第四步.进入源码文件夹 第五步.执行./configure,这一步主要是为 ...

  8. zabbix主机自动发现

    环境说明 角色 主机名 IP zabbix-server c1.heboan.com 192.168.88.1 zabbix-agent c2.heboan.com 192.168.88.2 zabb ...

  9. shell脚本--字符串处理和动态数组

    Linux下的文本处理命令,以清晰的列分割数据为高效处理源: awk 的gsub函数可替换指定字符串 echo "<tr><td>col1</td>< ...

  10. Spring的Web服务

    Spring支持:使用JAX-RPC暴露服务,访问Web服务 除了上面所说的支持方法,你还可以用XFire xfire.codehaus.org 来暴露你的服务.XFire是一个轻量级的SOAP库,目 ...