loadrunner:web services接口测试
本文以实例讲解web services接口测试操作,内容包括:脚本生成、参数化和接口与接口间的取值关联操作。
网站“http://www.webxml.com.cn/zh_cn/web_services.aspx”有很多开放的接口可供大家练习。
这次我们以“中文<->英文双向翻译WEB服务”接口为实例讲解web services接口测试:
1.1 生成脚本
1) 选择Web Services协议
2) 添加服务调用:打开Manage Services添加WSDL
3) 调用接口:打开Add Service Call在Operation下拉框,我们可以看到根据WSDL文件加载了6个接口方法,这时我们选择中"Translator"接口方法。
下面是Translator的解析:
输入参数:wordKey = 单词; 返回数据:DataSet。(包括全部数据三个DataTable)
如下图所示,我们用soapUI执行Translator方法输入参数值“services”后返回的结果
4) 输入参数:回到Web Service Call窗口,“Input Arguments”下就是该方法的参数,如下图所示,Translator下有一个参数"wordKey",这时我们选中"wordKey"在Value中输入参数值“services”
5) 点击“OK”后就生成了web_service_call,如下图所示,运行返回一组数据。(日志中有中文乱码,暂时不懂解决)
1.2 参数化
web services的参数化很简单,还是回到web service call窗口,直接选择参数进行参数化即可,如下图所示:
生成脚本如下:
1.3 接口间的参数关联
接口测试时,难免会出来接口之间参数传递,下面来说说接口间的参数关联。
以“400个国内外主要城市天气预报Web服务”接口为实例 |
Endpoint: http://ws.webxml.com.cn/WebServices/WeatherWebService.asmx |
Disco: http://ws.webxml.com.cn/WebServices/WeatherWebService.asmx?disco |
WSDL: http://ws.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl |
如下图所示,我们先添加了两个接口方法getSupportProvince和getSupportCity,在getSupportCity方法中我们暂时不参数化,而是先直接给“byProvinceName”赋了一个值“广东”。下面我们就通过修改脚本从getSupportProvince结果中取值给byProvinceName。
打开“Tree”视图 > 选择“getSupportProvince_101”> 打开“SnapShot”标签页 > 点击“Response”获取getSupportProvince的结果列,如下图所示:
找到是“广东”的返回值后,右键选择“save value in parameter..”
弹出XML parameter Properties窗口,如下图所示,这次关联是以XPath路径查找返回值的。这时我们输入参数名称“ParamValue_Province”即可。
点击“OK”,脚本中就生成了关联函数lr_xml_get_values,如下图所示,生成并调用ParamValue_Province
运行,查看ParamValue_Province的取值,如下图所示为“广东”
如何取一组关联数据:
如果要取得所有省份就把
1) “FastQuery”改为“Query”;
2) Xpath: “/Envelope/Body/getSupportProvinceResponse/getSupportProvinceResult/string”;
3) 增加属性"SelectAll=yes"。
如下图,输出了ParamValue_Province数组,我们取了第24个赋值到下一个方法