soapui工具_【接口测试】在soapui里面使用groovy脚本生成测试报告的方法

4e4082585f261592d78a99560469e5d8.png

soapui绝对是一个非常棒的软件,通过官网的宣传标题就知道他们有多自信了

405d2daf8fa0760533618c2f1e40fd2d.png

对于这样的工具,如果不学习,那真是没有道理的。
所以,我们一起来看看这个工具道理自信在哪里:

1. 先下载安装它,在soapui官网下载开源版本:https://www.soapui.org/

bb6ddfa595a5e3b9a9f985639d391dce.png

2. 打开soapui,在File中选择New REST Project

9606e9ddffddce88915e26acd083492c.png

7923eb61940e14e3d5e066ff7c853bfc.png

3. 在REST窗口填写自己要测试的api地址

9db5595f099fa7559c504e79a7fe79fc.png

4. 选择接口的请求方法、填写请求参数、请求头部信息

8e5ecb338703ab4d7e812cf19401ea8b.png

5. 运行验证一下看能不能跑通

2c6134d91bf9fe69068d39f9324c9493.png

6. 那么接口的基本信息我们就填写好了,现在我们需要能够实现接口自动化,并且可以自动生成测试结果文件,这就需要结合groovy脚本来实现了,先在接口上面右键,选择Generate TestSuite生成测试套件

279a1ea5f41e6202e51cdd72ee9218cd.png

7. 结构如下,可以给自己的测试用例修改名字

d9b80f19b01df09a8cf2be598ad773db.png

你可以看到在测试套件中,有load test和security test两项,所以soapui是可以进行接口的性能测试以及安全测试的

8. 在测试用例上右键选择Groovy Script创建脚本文件,给自己的脚本文件取个名字

176e6b072cf6744cb47a0f35308f0342.png

9. 现在我们可以开始在这个Groovy脚本文件中编写自己的东西了

39f6f76fba950111a293477fc0e32689.png

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()

}

打开我们的测试套件,先运行一遍,成功之后,去自己定义的文件位置看一看是不是有日志文件生成了

abecd51ccd6fa5ca3ad310741b9ef002.png

4a0abb0e706d409fd3576df59b0ee9c4.png

接下来我们取每次测试之后接口的响应结果,先导入获取响应信息节点的模块
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")

到这一步截止,保存测试结果的脚本差不多写完了,我们可以通过运行测试套件来看看结果

ff7f0159a9b07a908e4f002515774656.png

简直完美!
大家也可以到我的公众号中查看测试小文章,谢谢支持~

在soapui里面使用groovy脚本生成测试报告的方法(绝密!!!)​mp.weixin.qq.com
322a476d3087140c6a2fdb0ad4d7aa0f.png
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值