接口测试java代码 java接口性能测试( 二 )


11.不要硬性规定数据文件的路径 。
12.利用Junit 的自动异常处理书写简洁的测试代码
事实上在Junit 中使用try-catch 来捕获异常是没有必要的,Junit 会自动捕获异常 。那些没有被捕获的异常就被当成错误处理 。
13. 充分利用Junit 的assert/fail 方法
assertSame()用来测试两个引用是否指向同一个对象
assertEquals()用来测试两个对象是否相等
14. 确保测试代码与时间无关
15. 使用文档生成器做测试文档 。
java各接口性能如何测试Java编程下用JMeter Java Sampler进行多接口性能测试,使用方法如下:
/**
*JMeter Java Sampler介绍
*setupTest做些初始化的工作,每个线程只执行一次
*teardownTest做些清理工作,每个线程只执行一次
*runTest具体的测试执行工作,每个并发每次循环都将执行一次
**/
//继承AbstractJavaSamplerClient
public class hessianTest extends AbstractJavaSamplerClient{
//hessian调用地址
private static String url = "";
MyService collect = null;
HessianProxyFactory factory = new HessianProxyFactory();
public int id;
@Override
public void setupTest(JavaSamplerContext arg0) {
//获取jmeter传入参数
id=arg0.getIntParameter("id");
try {
collect = (MyService) factory.create(
MyService.class, url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
@Override
public SampleResult runTest(JavaSamplerContext arg0) {
SampleResult sp = new SampleResult();
sp.sampleStart();
User rt = null;
try {
rt = collect.getUser(id);
} catch (Exception e) {
sp.sampleEnd();
sp.setSuccessful(false);
return sp;
}
sp.sampleEnd();
if(rt.getId()==id)
sp.setSuccessful(true);
else
sp.setSuccessful(false);
return sp;
}
@Override
public void teardownTest(JavaSamplerContext context) {
super.teardownTest(context);
}
}
java程序的接口中的测试类该怎么写?有什么用呢?其实无论用那种测试方法 , 接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端 , 客户端接收应答报文这一个过程 。
用loadrunner实现接口测试
大家都知道loadrunner是一种性能测试工具 , 但它也可以用在我们做接口测试的时候 。开发人员开发出来的接口 , 提供给测试人员详细的接口使用说明书 , 该说明书最基本的要求如下:
接口测试地址:/sns/publish
?xml
version="1.0"
encoding="iso-8859-1"?
publish
123
456
userid
2
commentstypeid
123
456
don't
forget
the
meeting!
这也是一种写法 , 可以跟web_submit_data互换 。这种写法更利于拼接参数 。
方法一适合一些xml结构的根元素下的子元素同处于根元素下面 , 且子元素数目较少的情况下 , 如果xml结构比较复杂,比如说根元素下面有多级子元素,或者xml树结构分叉较多的时候,我们可以先把xml拼接成一个字符串然后通过web_custom_request()向服务器发送请求 。
我们在做接口功能测试的时候会很注意接口的应答报文的信息,这时候我们可以通过loadrunner的日志信息查看或者可以通过web_reg_find()或者web_find()这样的api函数来统计接口的运行结果,推荐使用web_reg_find(),web_reg_find()和web_find()在这里 。
因为web_reg_find()是注册型函数,所以应该放在web_submit_data()或者web_custom_request()的前面 。

推荐阅读