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 

  • 相关阅读:
    反向代理实例
    nginx常用命令和配置
    nginx的安装
    Can Live View boot up images acquired from 64bit OS evidence?
    What is the behavior of lnk files?
    EnCase v7 search hits in compound files?
    How to search compound files
    iOS 8.3 JB ready
    Sunglasses
    现代福尔摩斯
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/6439937.html
Copyright © 2011-2022 走看看