`

使用TestNG进行多线程压力测试

 
阅读更多


1、在项目中加入:
<dependency>
     <groupId>org.testng</groupId>
     <artifactId>testng</artifactId>
     <version>6.4</version>
     <scope>test</scope>
</dependency>

2、建立测试类,并添加测试方法:
@Test(invocationCount = 100, threadPoolSize = 50)
public void addStr() {
     String key = "CacheHelperTest:addStr:001";
     String value = "001";
     CacheHelper.add(key, value);
     String result = CacheHelper.getStr(key);
     CacheHelper.remove(key);
     Assert.assertEquals(value, result);
}

invocationCount设定的是这个方法的执行次数
threadPoolSize 这个属性表示的是开启线程数的多少,threadPoolSize的设定要依赖 invocationCount的设定,如果invocationCount的设定值小于threadPoolSize的设定值,多于的设定是无效的,举个极端的例子,如果你threadPoolSize设定是100,而invocationCount没有设定(默认为1次),那么系统只有开启一个线程来运行。反过invocationCount的设定不依赖threadPoolSize,testNG会以默认值1来运行。

开始时我将threadPoolSize设置去掉,然后执行,发现输出结果都是顺序的,而加上threadPoolSize设定后输出开始有些错乱,表明确实是多线程在执行。
我们能够使用这种方法进行并发测试和性能测试。

分享到:
评论

相关推荐

    testng官方文档及使用图解.rar

    TestNG的主要目标是支持所有类型的测试场景,包括功能测试、单元测试、集成测试以及压力测试。下面将详细阐述TestNG的核心特点和使用方法。 1. **注解驱动**: TestNG使用注解来定义测试类和方法,如`@Test`用于...

    testng-6.8.7

    这对于需要模拟多用户场景或进行压力测试的情况非常有用。 2. **测试套件和配置方法**:通过测试套件(Test Suite),你可以将多个测试类组合在一起,形成一个整体的测试流程。配置方法如`@BeforeSuite`和`@...

    基于JAVA简单简洁的压力测试, QPS测试工具.zip

    Java中的压力测试通常涉及到多线程和并发控制,以模拟多个用户同时访问应用。在Java中,我们可以利用`java.util.concurrent`包中的类,如`ExecutorService`、`ThreadPoolExecutor`和`Future`来创建并管理线程池,...

    线程测试代码

    这个文件可能包括了不同类型的测试用例,比如单元测试、集成测试和压力测试,每个用例都针对特定的线程安全问题进行设计。 线程测试通常涵盖以下知识点: 1. **线程同步**:这是防止数据不一致的关键技术,如使用`...

    SPECjbb2005.zip_spec cpu_自动化测试

    测试过程中,SPECjbb2005会创建多个虚拟Java客户端,这些客户端向服务器发送请求,服务器则处理这些请求,从而对CPU的多线程处理能力进行压力测试。测试结果通常以每秒完成的Java商业操作(JOPS,Java Operations ...

    线程测试大师1

    可以使用JMeter、LoadRunner等工具进行负载和压力测试。 7. **调试工具**:Java提供了一些强大的线程调试工具,如jstack用于查看线程堆栈,jconsole和VisualVM可以监控线程状态。学习使用这些工具有助于定位和解决...

    实用软件测试方法

    8. 并发测试:模拟多个用户同时使用软件,检查系统在多线程环境下的性能和稳定性。 9. 安全测试:评估软件的安全性,包括数据保护、防止未授权访问和防止恶意攻击。 10. 回溯测试:当软件出现故障时,回溯测试帮助...

    覆盖率&amp;并发性测试工具

    并发性测试主要检查以下几个方面:数据竞争(多个线程同时访问同一资源导致的不一致性)、死锁(两个或更多线程相互等待对方释放资源而形成的僵局)、活锁(线程间不断尝试获取资源但无法进行的情况)以及资源饥饿...

    迅雷测试工程师笔试题目

    - 下载技术:了解P2P(点对点)下载、多线程下载、迅雷独有的加速技术如Thunder Network。 - 移动端测试:针对iOS和Android平台,理解其特性和测试挑战。 - 数据分析:使用日志分析工具,进行性能和用户行为分析...

    软件工程中的软件测试工具与技术.pptx

    - **TestNG**:提供灵活的测试套件配置和多线程支持。 - **Robot Framework**:易于使用的自动化测试框架。 ##### 2.4 自动化测试工具的使用技巧 - **元素定位技巧**:掌握不同的定位方法,提高元素查找的准确性。...

    测试NG

    - **并发测试**:TestNG支持多线程并行执行测试,可以显著提高测试效率,特别是在大型项目中。 - **分组测试**:允许将相关测试组织成组,便于执行和管理。 - **依赖性测试**:通过@BeforeSuite、@AfterSuite、@...

    C++、JAVA+、C+++、软件测试面试题

    5. **性能测试**:压力测试、负载测试、稳定性测试的目标和工具,如JMeter、LoadRunner。 6. **敏捷测试**:Scrum、Kanban等敏捷开发中的测试实践。 7. **测试文档**:测试计划、测试用例、测试报告的编写规范。 **...

    JavaSDET-0221

    13. **性能和压力测试**:使用JMeter或LoadRunner进行系统性能测试,评估系统的负载能力和稳定性。 14. **代码审查**:了解代码审查的重要性,能够通过GitHub的Pull Request流程进行代码审查。 以上这些是Java ...

    C` C++ `JAVA `C# `软件测试 各种面试题

    - 性能测试:压力测试、负载测试、稳定性测试,JMeter或LoadRunner的使用。 以上知识点只是冰山一角,每个主题都包含大量深入的细节和实践经验。面试者不仅需要掌握理论知识,还需要具备实际项目经验,能够灵活...

    C.C.Java及软件测试的笔试

    6. 标准库和框架:如STL(C++标准模板库)、Java集合框架、多线程API等。 7. 设计模式:单例、工厂、观察者等常见的设计模式及其应用场景。 软件测试部分可能涉及: 1. 测试策略和方法:了解不同测试阶段的目标和...

    软件开发测试类笔试、面试资料集锦

    - 异常处理、IO流、多线程、网络编程。 - 内存管理与垃圾回收机制。 3. **软件测试**: - 测试类型:功能测试、性能测试、兼容性测试、安全性测试、回归测试等。 - 测试用例设计:等价类划分、边界值分析、因果...

    C、C 、Java及软件测试的笔试、面试题集合Version2

    测试工程师需要了解测试策略、测试用例设计、缺陷管理、自动化测试工具(如Selenium、JUnit、TestNG)以及性能测试(如压力测试、负载测试)。 5. **面试与笔试技巧**:在求职过程中,面试和笔试是评估候选人技能的...

    四阶段第1天资料.zip

    - **压力测试**:通过Apache JMeter或其他工具进行性能测试,模拟高并发场景。 - **自动化测试**:使用Selenium等工具进行Web应用的UI自动化测试。 - **持续集成/持续部署(CI/CD)**:配置Jenkins或GitLab CI/CD,...

    软件测试开发工具大全资源包之JDK

    - **性能测试**:JDK的JMeter或VisualVM可进行性能分析和压力测试。 **6. JDK的未来** 随着Java技术的不断发展,JDK将继续演进,包括更高效的内存管理、更好的安全性、更现代的编程模型等。学习和掌握JDK对于理解...

    阿里巴巴2010校园招聘技术类笔试试题(Java,搜索研发,C++,测试工程师)南京站.docx

    4. **多线程**:理解线程的创建与同步机制,如synchronized关键字、wait/notify方法等。 5. **IO流**:了解输入输出流的不同类别,如字节流、字符流、对象流等。 6. **网络编程**:理解Socket编程,会使用TCP/IP进行...

Global site tag (gtag.js) - Google Analytics