在自己的工作中经常碰到要做接口级别的功能和性能测试,soapUI是一款不错的工具,可以用来对soap接口和REST接口做测试。具体的操作步骤可以参考:
http://www.ibm.com/developerworks/cn/opensource/os-cn-soapui/#listing2
当然,在soapUI的官网上也有说明。
对于REST接口,基本是按照project->service->resource->method来创建的,按照接口文档配置好各项参数以后,就可以测试该接口的功能了。值的注意的是在project可以配置参数,一些全局的参数值可以放在这里,例如IP,端口,用户名等等,这样就省去了有变化时每个接口都要修改。同样的,在配置接口参数时也可以在URL或者消息体中调用参数值,例如:
{
"user_id":"${#Project#UserName}",
"value":"${#Project#Passwd}",
"host_ip":"${#Project#LocalIp}"
}
这代表消息体中的user_id取project参数中UserName的值,其他的value和host_ip类似。
在接口的URL中也可以定义本地化参数,例如{version}代表取接口中version参数的值。
对于接口的简单性能测试也可以用soapUI来做,相比于Loadrunner它更加轻量化,同时可以用自带的Groovy脚本做一些自动化的操作批量执行用例。例如:
import groovy.util.XmlSlurper;
import java.util.Date;
//取得body中X-Auth-Token值
String response = testRunner.testCase.getTestStepByName("Login").testRequest.response.getContentAsXml();
log.info(response);
body = new XmlSlurper().parseText(response)
String Token = body.data
log.info(Token)
//将Token值赋给project变量,以便后面teststep获取使用
testRunner.testCase.testSuite.project.setPropertyValue("Token", Token);
接口的性能测试,主要依靠TestSuite中的LoadTest来做,在LoadTest中可以将多个接口或者脚本组装成一个完整的执行用例,配置线程并发数,执行次数,执行时间等,最后的结果中可以看到每个step的执行状态。对于接口来说,最主要的还是要看执行结果是否正确,以及每个接口的响应时间。