(ssh) junit 模拟多线程测试servcie 方法
来源:互联网 发布:鸡兔同笼c语言编程答案 编辑:程序博客网 时间:2024/04/29 05:21
模拟多线程测试service方法一般情况是为了验证如下情况:生成的编码(序列号),或资源是否是唯一的,有没有重复。
测试前提:
1.dao层,service层接口已经编写完毕
2.spring 配置文件编写完毕
3.hibernate配置文件编写完毕
4.jdbc配置文件编写完毕
5.log4j配置文件编写完毕
这几个文件均放在service层java project的src目录下。
环境完毕,接下来,进入正题:
1.编写一个BasicTest类,继承org.springframework.test.AbstractTransactionalDataSourceSpringContextTests,这个类是在spring-test-2.5.6.jar中
如:
import javax.annotation.Resource;import org.apache.log4j.Logger;import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;import com.test.service.OpService;public class BasicTest extends AbstractTransactionalDataSourceSpringContextTests{ @Resource protected OpService opService;//利用spring配置的注解注入要测试的service层接口 protected Logger logger = Logger.getLogger("/log4j.properties");//生成一个log4j对象 //加载spring配置文件,声明采用类型匹配注入接口 protected String[] getConfigLocations(){ setAutowireMode(AUTOWIRE_BY_TYPE); return new String[]{"classpath:applicationContext.xml"}; }}
2.建立一个抽象类,里面有需要测试的service 接口属性
如:
import com.test.service.OpService;public abstract class SuperThread { protected OpService op;}3.建立多个线程类,继承抽象类:
3.1建立线程A
import org.apache.log4j.Logger;import com.test.service.OpService;import com.test.pojo.CreatedMac;public class ThreadA extends SuperThread implements Runnable { private Logger loggesr; public ThreadA(OpService op,Logger logger){ this.op = op; this.loggesr = logger; }@Overridepublic void run() {while(true){try { CreatedMac mac = op.createMac(99L, 1L);//线程中使用service接口op执行方法 System.out.println("================ThreadA===============mac:"+mac.getMac()+":"); loggesr.error("================ThreadA===============mac:"+mac.getMac()+":");Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch(Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }}}}3.2建立线程B
import org.apache.log4j.Logger;import com.test.service.OpService;import com.test.pojo.CreatedMac;public class ThreadB extends SuperThread implements Runnable { private Logger loggesr; public ThreadB(OpService op,Logger loggesr){ this.op = op; this.loggesr = loggesr; } @Override public void run() { while(true){ try { CreatedMac mac = op.createMac(99L, 1L);//线程中使用service接口op执行方法 System.out.println("+++++ThreadB+++++++++mac:"+mac.getMac()+":"); loggesr.error("+++++ThreadB+++++++++mac:"+mac.getMac()+":"); Thread.sleep(200); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch(Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}同样还可以复制copy建立线程c,d,e等等
4.建立junit test方法
import org.junit.Test;import com.test.BasicTest;import com.test.ThreadA;import com.test.ThreadB;import com.test.ThreadC;public class OpServiceImplTest extends BasicTest { @Test public void testCreateMac(){ try { ThreadA threada = new ThreadA(opService,logger); ThreadB threadb = new ThreadB(opService,logger); ThreadC threadc = new ThreadC(opService,logger); Thread t = new Thread(threada); Thread t1 = new Thread(threadb); Thread t2 = new Thread(threadc); t.start(); t1.start(); t2.start(); Thread.sleep(50000);//这里是重点,一定要让本线程睡一会,否则上面的线程还没跑就结束了 } catch(Exception e) { e.printStackTrace(); } }}
0 0
- (ssh) junit 模拟多线程测试servcie 方法
- SSH框架学习(十、Junit+GroboUtils进行多线程测试)
- SSH框架学习(十、Junit+GroboUtils进行多线程测试)
- SSH框架学习(八、Junit+GroboUtils进行多线程测试)
- Junit 多线程测试
- Junit测试多线程
- Junit 多线程测试
- Junit spring 多线程测试
- Junit多线程测试
- junit 多线程测试
- spring-junit多线程测试
- Junit不支持多线程测试
- junit测试和main方法多线程中遇到的问题
- SSH下做Junit测试
- ssh框架Junit测试DAO
- SSH下做Junit测试
- SSH下做Junit测试
- JUnit测试方法
- 设计模式14——行为型模式之职责链模式
- ubuntu设置jenkins开机自动启动
- 网站优化均衡技巧:建设平稳的网站数据
- 导致电脑网速变慢的几个方面
- Xcode 证书生成、设置、应用。
- (ssh) junit 模拟多线程测试servcie 方法
- CFLAGS was changed 错误 LDD3
- poi导出Excel
- [教程]如何使用V7包中ActionBar(Eclipse版)
- Python直接访问Postgresql,实践通过
- 如何做好站外引流--天下人招聘
- kettle性能及效率提升
- Yii pdateCounters更新操作
- jquery 鼠标跟随提示