做软件测试,特别是在互联网行业公司做性能测试是不可避免的,做性能测试常用的几种脚本编写方式要么是录制,要么利用URL编写简单的GET或POST请求,那么doubbo接口如何通过LR做性能测试呢,让开发提供压测URL通过URL进行压测?这种方式所发出的请求需要通过这个站点中转,测试结果必定不准确。以i下介绍下使用spring调用doubbo接口,然后使用LR压测。
首先我准备了一个用于测试的接口,比较简单,此处只为说明如何通过LR压测doubbo接口
sumInterface接口
public interface sumInterface {
public abstract void sum1(int i,int j);
}
sumInterface接口的实现类
public class doubboTest implements sumInterface {
public static int sum;
@Override
public void sum1(int i, int j) {
sum=i+j;
}
}
接口实现完成后,我们打成jar包,然后开始进行java访问接口方法的编写
public static void initSpring(String path) throws Throwable{
if((context ==null)){
context = new ClassPathXmlApplicationContext(path);
}
sum=(OrderService) context.getBean("orderService");
queryService=(CommonOrderQueryService)context.getBean("commonOrderQueryService");
}
配置xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="loadRunner" />
<dubbo:registry address="zookeeper://192.168.XX.XX:XXX" />
<dubbo:reference id="sum" interface="被测接口"/>
</beans>
编写接口调用方法及测试
public class testDoubbo {
public static void SpringInit(String path){
if((context ==null)){
context = new ClassPathXmlApplicationContext(path);
}
sumTest =(sum) context.getBean("sum");
}
public static int LRTestDoubbo(int i1,int i2){
SpringInit("XML路径");
doubboTest d=new doubboTest();
sumTest.sum1(i1, i2);
return d.sum;
}
public static void main(String[] args){
System.out.println(LRTestDoubbo(1,2));
}
}
测试方法print结果:3
测试通过之后再把调用接口方法打成jar包,这样在LR中只需要调用jar中的LRTestDoubbo方法即可,数据按照LR中的方式进行数据参数化。
调试完毕后就可以进行压测。