自己在工作中的总结,如果有不对的地方,您可以帮忙指出哦
在此之前自己对公司的某套接口做过自动化测试,是用Python+unittest+ddt+HTMLTestRunner搭建的一个自动化测试框架,接口是公司开发的一套可移植性较强的接口,经常在客户那边搭建一台新的服务器来部署此套接口,因此每次实施部署好之后都需要测试这边远程跑一下自动化测试脚本。
这套接口是一套全新的接口,项目交接时间比较紧,而且也不确定开发自动化脚本性价比是否高,所以自己就用soapUI测试工具做一下数据驱动测试。
DataSource功能是soapUI Pro版本里面的,soapUI没有此功能
一、新建项目
1、新建项目以及复制一个testsuite就不赘述了,接下来的测试都在复制的这个测试组件里面进行
二、添加DataSource数据源
1、在测试步骤中有一个soap请求,选中测试步骤右键添加DataSource数据源,为请求提供参数
2、配置DataSource,excel文件如下图所示(如果Excel文档中添加参数名称,start cell需要从A2开始)
3、将soap请求中的参数关联到DataSource,如图
4、到此,数据驱动还差最后一步,如果不做此操作,接口只会执行一行数据,测试步骤右键添加DataSource loop,并选择DataSource step和target step
三、添加断言
1、soapUI断言有很多种,此处使用script Assertion,请求页面添加script断言
2、编写Groovy脚本验证结果
//解析soapUI返回的结果xml
import com.eviware.soapui.support.GroovyUtils
def groovyUtils = new GroovyUtils(context)
def response = context.expand('${getBusiness#Response}')
def holder = groovyUtils.getXmlHolder(response)
//获取xml结果中return节点的数据
def tradeDetails = holder.getNodeValue("//return[1]")
//解析return节点的json数据
import groovy.json.JsonSlurper
def slurper = new JsonSlurper()
def re = slurper.parseText(tradeDetails)
//获取实际结果
def result=re.result
def resultType=re.resultType
//获取预期结果(该结果在Excel表格和DataSource中配置)
def expectResult=context.expand('${DataSource#result}')
def expectResultType=context.expand('${DataSource#resultType}')
//断言
assert result==expectResult
assert resultType==expectResultType
3、由于该接口测试是个集合,所以返回的结果有的是成功的,有的是失败的,当失败发生时测试是不能停止的需要继续执行,所以我们要取消该设置:选中Test Case右键菜单->Options
4、运行结果如图
每天多学一点点~~