zoukankan      html  css  js  c++  java
  • testng并发测试与测试并发

    一、testng并发测试
    通过xml文件中suit结点的parallel属性指定,如
    <suite name="bundle-module-testabc" parallel="methods" thread-count="5">
    parallel属性值有:
    "methods": TestNG 会在不同的线程中运行测试方法,除非那些互相依赖的方法。那些相互依赖的方法会运行在同一个线程中,并且遵照其执行顺序。 
    "tests": TestNG 会在相同的线程中运行相同的<test>标记下的所有方法,但是每个<test>标签中的所有方法会运行在不同的线程中。这样就允许你把所有非线程安全的类分组到同一个<test>标签下,并且使其可以利用TestNG多线程的特性的同时,让这些类运行在相同的线程中。
    "classes": TestNG 会在相同线程中相同类中的运行所有的方法,但是每个类都会用不同的线程运行。
    另外通过 thread-count属性来指定运行测试用例的线程数。

    二、testng测试并发
    如果要在@Test的方法中模拟多线程环境测试方法在多线程环境下的运行情况,一种传统不推荐的方法是,直接在方法中创建多个线程,并在每个线程run方法中调用被测试的函数,这种方法麻烦且不能直接在线程中试用testng的断言——主要是工作在testng的主线程中,推荐的方法时用@Test的注解测试如下:
    @Test(invocationCount = 100, threadPoolSize = 50,timeout=5000) 
    invocationCount:要让这个方法执次数 (多线程执行的总次数)
    threadPoolSize :要开启多少线程执行这个方法(多线程数)若线程数为1,则在一个线程里连续执行方法invocationCount次,若线程数大于invocationCount,则最多启动invocationCount个线程来执行测试方法。
    timeout:执行超时时间

    另外测试多线程并发时,有些并发问题代码可能因为执行时间太短(线程在一个时间片就执行完)测试时不易重现,可通过在代码区调用Thread.sleep(1000)这个静态方法来模拟。




  • 相关阅读:
    修改ASP.NET MVC Ajax分页组件ASP.NET MvcPager一个小Bug并修该样式为自己所用(一)
    HighCharts报表 API
    自动化开发资料
    修改ASP.NET MVC Ajax分页组件ASP.NET MvcPager一个小Bug并修该样式为自己所用(三)
    网络营销资料收集
    C#扩展方法
    UI Automation Under the Hood (1)
    C#辅助类之ConfigHelper
    设计模式资源汇总
    Windows GUI自动化测试
  • 原文地址:https://www.cnblogs.com/doit8791/p/5854308.html
Copyright © 2011-2022 走看看