zoukankan      html  css  js  c++  java
  • TestNG 八 并发测试

    一、 Concurrenttesting:

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

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

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

    页面输出

    [TestNG]Running:

     E:Androidselenium est_wdng_javasrc esting.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,这样可以获得最大的运行速度,最大限度的节约执行时间。当然,并发运行也是有代价的,就是需要我们的代码是线程安全的。

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

    [html] view plain copy
     
    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,同时会有两个线程在运行。

    例如:

    [java] view plain copy
     
    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 

  • 相关阅读:
    GPS时间服务器在广电系统的应用
    时钟系统报价分析
    北斗校时服务器装置介绍
    时钟服务器的安装与调试
    频率计使用说明
    通用计数器使用方法
    WOL持久化配置
    RGB屏驱动流程
    iOS-苹果登陆授权(AppleID SignIn)
    VSCODE自用快捷键备忘
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/6439937.html
Copyright © 2011-2022 走看看