TA的每日心情 | 无聊 2024-9-19 09:07 |
---|
签到天数: 11 天 连续签到: 2 天 [LV.3]测试连长
|
本帖最后由 八戒你干嘛 于 2017-8-8 11:19 编辑
由于字数限制,此贴分为两贴,此贴为下贴。
上贴地址⬇️
JUnit4 多线程执行测试用例 (上)
只要在单个测试类前,加上注解:@RunWith(MultiThreadRunner.class),就可以并发的执行用例。
如下图:
(三)自定义聚合多个类进行多线程执行的Runner有时我们需要聚合同一个模块的测试类,如果使用@RunWith(Suite.class)@SuiteClasses({A.class,B.class}),当类较多时,需要一一列举,效率不高;可以使用ClasspathSuite,支持过滤,将类名符合一定规则的类聚合,官方文档。
实现代码如下:
新建一个聚合的IntegrationBeijingOneTests.java文件:
- @RunWith(ConcurrentSuite.class)
- @ClassnameFilters({"com.weibo.cases.xuelian.*Test", "!.*RemindTest","com.weibo.cases.maincase.*Xuelian"})
- @Concurrent
- public interface IntegrationBeijingOneTests {
- }
复制代码
再建一个suite文件,XuelianTestSuite.java:
- package com.weibo.cases.suite;
- import org.junit.experimental.categories.Categories;
- import org.junit.runner.RunWith;
- import org.junit.runners.Suite.SuiteClasses;
- @RunWith(Categories.class)
- @SuiteClasses( IntegrationBeijingOneTests.class )
- public class XuelianTestSuite {
- }
复制代码
直接运行XuelianTestSuite.java即可,执行过程如下:
写在最后:设计测试用例时需考虑线程安全。
建议(本组内用例):
1.账号的使用,同一个测试类中每个测试方法之间需使用不同测试账号(之前未考虑并发,串行执行时方法间使用同样账号,没有影响),咱们组V4的用例共1516个,假设每个用例使用3个账号,则同时执行用例时,则需4548个账号,现库里有1617个账号,可能需要增加用户(空间换时间); 当然也可以控制并发执行测试方法的数量,来减少用户的使用,比如可以指定同时5个(可调)测试方法并发执行,当然,执行时间上就会相应的增加。
2.非final的全局变量,全改写到测试方法内定义,变成局部变量。
|
|