soapui绝对是一个非常棒的软件,通过官网的宣传标题就知道他们有多自信了
对于这样的工具,如果不学习,那真是没有道理的。
所以,我们一起来看看这个工具道理自信在哪里:
1. 先下载安装它,在soapui官网下载开源版本:https://www.soapui.org/
2. 打开soapui,在File中选择New REST Project
3. 在REST窗口填写自己要测试的api地址
4. 选择接口的请求方法、填写请求参数、请求头部信息
5. 运行验证一下看能不能跑通
6. 那么接口的基本信息我们就填写好了,现在我们需要能够实现接口自动化,并且可以自动生成测试结果文件,这就需要结合groovy脚本来实现了,先在接口上面右键,选择Generate TestSuite生成测试套件
7. 结构如下,可以给自己的测试用例修改名字
你可以看到在测试套件中,有load test和security test两项,所以soapui是可以进行接口的性能测试以及安全测试的
8. 在测试用例上右键选择Groovy Script创建脚本文件,给自己的脚本文件取个名字
9. 现在我们可以开始在这个Groovy脚本文件中编写自己的东西了
10. 要实现的基本功能如下,生成测试报告的文件夹--生成日志文件--放入每个接口的测试结果
首先导入文件读写的模块
import java.io.*
生成一个日历
def cal = Calendar.getInstance
获取到现在的年月日信息,因为月的定义是0-11,所以要额外加1
def Y = cal.get(Calendar.YEAR)
def M = cal.get(Calendar.MONTH)+1
def D = cal.get(Calendar.DATE)
统一月、日的格式,然后拼接一个年月日的值
if (M<10){
M="0"+M
}
if (D<10){
D="0"+D
}
def date = Y+"-"+M+"-"+D
定义日志存放的文件夹位置
def logFolder = new File("D:/logs")
def subFolder = new File("D:/logs/"+date+"/")
判断系统的位置上有没有这个文件夹,如果没有,就创建它
if(!logFolder.exists()){
logFolder.mkdirs()
}
if(!subFolder.exists()){
subFolder.mkdirs()
}
定义日志文件的位置和名字
def responseLogFile = new File("D:/logs/"+date+"/"+"api_test.log")
判断如果没有这个文件,那么就创建一个
if (!responseLogFile.exists()){
responseLogFile.createNewFile()
}
打开我们的测试套件,先运行一遍,成功之后,去自己定义的文件位置看一看是不是有日志文件生成了
接下来我们取每次测试之后接口的响应结果,先导入获取响应信息节点的模块
import com.eviware.soapui.support.GroovyUtils
把测试的响应结果保存到一个变量中
def response = new GroovyUtils(context)
将接口中必要的响应结果字段也同样保存起来
def code=response.getXmlHolder("ResponseAsXml").getNodeValue("//*:code")
def msg=response.getXmlHolder("ResponseAsXml").getNodeValue("//*:msg")
判断响应结果是否符合实际预期,也就是将预期结果和实际结果做对比
def results
if (code=="1" && msg=="登录成功"){
results = "测试成功"
}else{
results = "测试失败"
}
最后,将所有可能用到的信息,全部存放到日志文件中,包括结果、测试时间、响应的结果和请求的参数值
生成当前时间
def time = cal.getTime().toString()
获取测试用例的标题
def testcaseName = testRunner.testCase.name
写入日志,换行需要使用"rn"来表示
responseLogFile.append(testcaseName+": "+results+" "+"响应的结果是:"+"code: "+code+" msg:"+msg+"rn")
到这一步截止,保存测试结果的脚本差不多写完了,我们可以通过运行测试套件来看看结果
简直完美!
大家也可以到我的公众号中查看测试小文章,谢谢支持~