一、 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】面试题 11. 旋转数组的最小数字

    面试题 11. 旋转数组的最小数字 题目描述 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4, ...

  2. 一个通用的php正则表达式匹配或检测或提取特定字符类

      在php开发时,日常不可或缺地会用到正则表达式,可每次都要重新写,有时忘记了某一函数还要翻查手册,所以,抽空写了一个关于日常所用到的正则表达式区配类,便于随便移置调用.(^_^有点偷懒). /*/ ...

  3. 转:java-Servlet开发

    转:http://www.cnblogs.com/xdp-gacl/p/3760336.html 一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司 ...

  4. Android使用UncaughtExceptionHandler捕获全局异常

    Android系统的“程序异常退出”,给应用的用户体验造成不良影响.为了捕获应用运行时异常并给出友好提示,便可继承UncaughtExceptionHandler类来处理.通过Thread.setDe ...

  5. python基础day4

    1.列表生成式,迭代器&生成器 列表生成式 将列表[0,1,2,3,4,5,6,7,8]中的每个值加1,如何实现?常用的几种方法 方法一: a=[0,1,2,3,4,5,6,7,8] for ...

  6. Single Number III(LintCode)

    Single Number III Given 2*n + 2 numbers, every numbers occurs twice except two, find them. Example G ...

  7. apache配置httpd.conf相关

    1.apache开启压缩AddOutputFilterByType 找到并打开apache/conf目录中的httpd.conf文件 在httpd.conf中打开deflate_Module,head ...

  8. MAC安装go

    下载官方pkg文件,一路傻瓜next就行了. pkg默认是安装到/usr/local/go 安装完成,接下来是配置mac下的环境变量.打开终端(Terminal),敲入一下代码:cd ~ #进入当前用 ...

  9. android 内存泄漏检测工具 LeakCanary 泄漏金丝雀

    韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com 内存泄漏检测工具 android 内存泄漏检测工具 ======== 内存泄漏 就是  无用的对 ...

  10. Vue2.X的路由管理记录之 钩子函数(切割流水线)2

    $route可以在子组件任何地方调用,代表当前路由对象,这个属性是只读的,里面的属性是 immutable(不可变) 的,不过你可以 watch(监测变化) 它. 导航和钩子函数: 导航:路由正在发生 ...