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设定后输出开始有些错乱,表明确实是多线程在执行。
我们能够使用这种方法进行并发测试和性能测试。
- 浏览: 304474 次
- 性别:
- 来自: 北京
最新评论
-
kongdong88:
Netty简单应用与线上服 ...
用Netty实现的一个简单的HTTP服务器 -
phili1999:
兄弟,此乃Eclipse的bug,至今未解决,可见国人地位低啊 ...
eclipse的控制台在UTF-8编码下键盘输入BUG问题,请问有谁能解决 -
xiaguobing:
谢谢分享啊
MetaQ初探 -
ih0qtq:
...
java性能编码规范整理
相关推荐
TestNG的主要目标是支持所有类型的测试场景,包括功能测试、单元测试、集成测试以及压力测试。下面将详细阐述TestNG的核心特点和使用方法。 1. **注解驱动**: TestNG使用注解来定义测试类和方法,如`@Test`用于...
这对于需要模拟多用户场景或进行压力测试的情况非常有用。 2. **测试套件和配置方法**:通过测试套件(Test Suite),你可以将多个测试类组合在一起,形成一个整体的测试流程。配置方法如`@BeforeSuite`和`@...
Java中的压力测试通常涉及到多线程和并发控制,以模拟多个用户同时访问应用。在Java中,我们可以利用`java.util.concurrent`包中的类,如`ExecutorService`、`ThreadPoolExecutor`和`Future`来创建并管理线程池,...
这个文件可能包括了不同类型的测试用例,比如单元测试、集成测试和压力测试,每个用例都针对特定的线程安全问题进行设计。 线程测试通常涵盖以下知识点: 1. **线程同步**:这是防止数据不一致的关键技术,如使用`...
测试过程中,SPECjbb2005会创建多个虚拟Java客户端,这些客户端向服务器发送请求,服务器则处理这些请求,从而对CPU的多线程处理能力进行压力测试。测试结果通常以每秒完成的Java商业操作(JOPS,Java Operations ...
可以使用JMeter、LoadRunner等工具进行负载和压力测试。 7. **调试工具**:Java提供了一些强大的线程调试工具,如jstack用于查看线程堆栈,jconsole和VisualVM可以监控线程状态。学习使用这些工具有助于定位和解决...
8. 并发测试:模拟多个用户同时使用软件,检查系统在多线程环境下的性能和稳定性。 9. 安全测试:评估软件的安全性,包括数据保护、防止未授权访问和防止恶意攻击。 10. 回溯测试:当软件出现故障时,回溯测试帮助...
并发性测试主要检查以下几个方面:数据竞争(多个线程同时访问同一资源导致的不一致性)、死锁(两个或更多线程相互等待对方释放资源而形成的僵局)、活锁(线程间不断尝试获取资源但无法进行的情况)以及资源饥饿...
- 下载技术:了解P2P(点对点)下载、多线程下载、迅雷独有的加速技术如Thunder Network。 - 移动端测试:针对iOS和Android平台,理解其特性和测试挑战。 - 数据分析:使用日志分析工具,进行性能和用户行为分析...
- **TestNG**:提供灵活的测试套件配置和多线程支持。 - **Robot Framework**:易于使用的自动化测试框架。 ##### 2.4 自动化测试工具的使用技巧 - **元素定位技巧**:掌握不同的定位方法,提高元素查找的准确性。...
- **并发测试**:TestNG支持多线程并行执行测试,可以显著提高测试效率,特别是在大型项目中。 - **分组测试**:允许将相关测试组织成组,便于执行和管理。 - **依赖性测试**:通过@BeforeSuite、@AfterSuite、@...
5. **性能测试**:压力测试、负载测试、稳定性测试的目标和工具,如JMeter、LoadRunner。 6. **敏捷测试**:Scrum、Kanban等敏捷开发中的测试实践。 7. **测试文档**:测试计划、测试用例、测试报告的编写规范。 **...
13. **性能和压力测试**:使用JMeter或LoadRunner进行系统性能测试,评估系统的负载能力和稳定性。 14. **代码审查**:了解代码审查的重要性,能够通过GitHub的Pull Request流程进行代码审查。 以上这些是Java ...
- 性能测试:压力测试、负载测试、稳定性测试,JMeter或LoadRunner的使用。 以上知识点只是冰山一角,每个主题都包含大量深入的细节和实践经验。面试者不仅需要掌握理论知识,还需要具备实际项目经验,能够灵活...
6. 标准库和框架:如STL(C++标准模板库)、Java集合框架、多线程API等。 7. 设计模式:单例、工厂、观察者等常见的设计模式及其应用场景。 软件测试部分可能涉及: 1. 测试策略和方法:了解不同测试阶段的目标和...
- 异常处理、IO流、多线程、网络编程。 - 内存管理与垃圾回收机制。 3. **软件测试**: - 测试类型:功能测试、性能测试、兼容性测试、安全性测试、回归测试等。 - 测试用例设计:等价类划分、边界值分析、因果...
测试工程师需要了解测试策略、测试用例设计、缺陷管理、自动化测试工具(如Selenium、JUnit、TestNG)以及性能测试(如压力测试、负载测试)。 5. **面试与笔试技巧**:在求职过程中,面试和笔试是评估候选人技能的...
- **压力测试**:通过Apache JMeter或其他工具进行性能测试,模拟高并发场景。 - **自动化测试**:使用Selenium等工具进行Web应用的UI自动化测试。 - **持续集成/持续部署(CI/CD)**:配置Jenkins或GitLab CI/CD,...
- **性能测试**:JDK的JMeter或VisualVM可进行性能分析和压力测试。 **6. JDK的未来** 随着Java技术的不断发展,JDK将继续演进,包括更高效的内存管理、更好的安全性、更现代的编程模型等。学习和掌握JDK对于理解...
4. **多线程**:理解线程的创建与同步机制,如synchronized关键字、wait/notify方法等。 5. **IO流**:了解输入输出流的不同类别,如字节流、字符流、对象流等。 6. **网络编程**:理解Socket编程,会使用TCP/IP进行...