1、使用工具:

loadrunner12,本实例截图中都是loadrunner12工具

2、操作步骤:

1)、新建脚本,选择Web Services协议:

2)、选择工具栏:

3)、点击Import,输入wsdl地址:测试代码用的地址:

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

4)、点击工具栏的Add Service Call:

5)、选择接口名称:

将返回数据保存到变量中:

6)、完成后,生成的原始代码如下:

Action()
{
web_service_call( "StepName=getWeatherbyCityName_101",
"SOAPMethod=WeatherWebService|WeatherWebServiceSoap|getWeatherbyCityName",
"ResponseParam=response",
"Service=WeatherWebService",
"ExpectedResponse=SoapResult",
"Snapshot=t1555599719.inf",
BEGIN_ARGUMENTS,
"theCityName=city_name",
END_ARGUMENTS,
BEGIN_RESULT,
"getWeatherbyCityNameResult/*[1]=Param_string",
END_RESULT,
LAST); return ;
}

7)、对接口请求进行完善,进行参数化,添加事务等操作

Action()
{ int result; //存放对比结果 lr_start_transaction("获取城市天气预报"); web_service_call( "StepName=getWeatherbyCityName_102", //步骤名称
"SOAPMethod=WeatherWebService|WeatherWebServiceSoap|getWeatherbyCityName", //服务器名称|soap|获取的接口名称(城市天气预报)
"ResponseParam=response", //返回的参数信息
"Service=WeatherWebService", //webservice服务
"ExpectedResponse=SoapResult", //请求返回
"Snapshot=t1555558737.inf", //快照
BEGIN_ARGUMENTS, //输入参数开始
"theCityName={city_name}", //请求输入
END_ARGUMENTS, //结束参数
BEGIN_RESULT, //返回值的开始
"getWeatherbyCityNameResult/*[2]=Param_string", //返回的参数保存在Param_string
END_RESULT, //返回值的结束
LAST); result = strcmp(lr_eval_string("{city_name}"),lr_eval_string("{Param_string}")); //对比输入参数是否与输出结果一致 //判断是否相等
if(result==)
{
lr_end_transaction("获取城市天气预报", LR_PASS);
}
else
{
lr_end_transaction("获取城市天气预报", LR_FAIL);
} lr_output_message("result:%d",result); //将返回信息进行转码
lr_convert_string_encoding(lr_eval_string("{response}"),"utf-8",NULL,"testruslt");
lr_output_message("接口返回信息为:%s",lr_eval_string("{testruslt}")); return ;
}

运行结果:

Starting iteration .
Starting action Action.
Action.c(): Notify: Transaction "获取城市天气预报" started.
Action.c(): Web service call "getWeatherbyCityName_102" started
Action.c(): Web service call "getWeatherbyCityName_102" was successful
Action.c(): Notify: Transaction "获取城市天气预报" ended with a "Pass" status (Duration: 0.4751 Wasted Time: 0.2191).
Action.c(): result:
Action.c(): 接口返回信息为:<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><getWeatherbyCityNameResponse xmlns="http://WebXml.com.cn/"><getWeatherbyCityNameResult><string>直辖市</string><string>北京</string><string></string><string>.jpg</string><string>// ::</string><string>℃/℃</string><string>4月18日 多云</string><string>东北风转南风3-4级</string><string>.gif</string><string>.gif</string><string>今日天气实况:气温:℃;风向/风力:西南风 3级;湿度:%;紫外线强度:弱。空气质量:良。</string><string>紫外线指数:弱,辐射较弱,涂擦SPF12-、PA+护肤品。
健臻·血糖指数:较易波动,血糖较易波动,注意监测。
穿衣指数:较舒适,建议穿薄外套或牛仔裤等服装。
洗车指数:较适宜,无雨且风力较小,易保持清洁度。
空气污染指数:良,气象条件有利于空气污染物扩散。
</string><string>℃/℃</string><string>4月19日 多云转小雨</string><string>南风小于3级</string><string>.gif</string><string>.gif</string><string>℃/℃</string><string>4月20日 小雨转多云</string><string>东北风转北风小于3级</string><string>.gif</string><string>.gif</string><string>北京位于华北平原西北边缘,市中心位于北纬39度,东经116度,四周被河北省围着,东南和天津市相接。全市面积一万六千多平方公里,辖12区6县,人口1100余万。北京为暖温带半湿润大陆性季风气候,夏季炎热多雨,冬季寒冷干燥,春、秋短促,年平均气温10-12摄氏度。北京是世界历史文化名城和古都之一。早在七十万年前,北京周口店地区就出现了原始人群部落“北京人”。而北京建城也已有两千多年的历史,最初见于记载的名字为“蓟”。公元前1045年北京成为蓟、燕等诸侯国的都城;公元前221年秦始皇统一中国以来,北京一直是中国北方重镇和地方中心;自公元938年以来,北京又先后成为辽陪都、金上都、元大都、明清国都。1949年10月1日正式定为中华人民共和国首都。北京具有丰富的旅游资源,对外开放的旅游景点达200多处,有世界上最大的皇宫紫禁城、祭天神庙天坛、皇家花园北海、皇家园林颐和园,还有八达岭、慕田峪、司马台长城以及世界上最大的四合院恭王府等各胜古迹。全市共有文物古迹7309项,其中国家文物保护单位42个,市级文物保护单位222个。北京的市树为国槐和侧柏,市花为月季和菊花。另外,北京出产的象牙雕刻、玉器雕刻、景泰蓝、地毯等传统手工艺品驰誉世界。</string></getWeatherbyCityNameResult></getWeatherbyCityNameResponse></soap:Body></soap:Envelope>
Ending action Action.
Ending iteration .

3、通过引入soap的方式,编写webservices接口,测试链接:

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getWeatherbyCityName

      1)、将以上链接地址打开后,将一些部分代码复制粘贴到xml文件中:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getWeatherbyCityName xmlns="http://WebXml.com.cn/">
<theCityName>string</theCityName>
</getWeatherbyCityName>
</soap:Body>
</soap:Envelope>

    2)、通过工具栏,引入soap:

3)、输入相关信息:

4)、代码经过处理后:

Action()
{ int result; //存放对比结果 lr_start_transaction("获取城市天气预报"); //lr_convert_string_encoding("北京",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"cityname"); //将中文的utf-8转换成lr的编码方式
lr_convert_string_encoding(lr_eval_string("{send_city}"),NULL,"utf-8","cityname");
lr_save_string(lr_eval_string("{cityname}"),"city_name");
soap_request(
"StepName=SOAP Request", //步骤名称
"URL=http://www.webxml.com.cn//WebServices/WeatherWebService.asmx", //请求的url地址
"SOAPEnvelope=" //发送到服务器的xml包
"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
"<soap:Body>"
"<getWeatherbyCityName xmlns=\"http://WebXml.com.cn/\">"
"<theCityName>{city_name}</theCityName>"
"</getWeatherbyCityName>"
"</soap:Body>"
"</soap:Envelope>",
"SOAPAction=http://WebXml.com.cn/getWeatherbyCityName",
"ResponseParam=response", //存储服务器响应的输出参数的名称
"Snapshot=t1555584007.inf",
LAST); lr_convert_string_encoding(lr_eval_string("{response}"),"utf-8",NULL,"testruslt"); lr_output_message("接口返回信息为:%s",lr_eval_string("{testruslt}")); lr_xml_get_values(
"XML={response}", //获取返回消息体
"Query=/Envelope/Body/getWeatherbyCityNameResponse/getWeatherbyCityNameResult/string[2]", //对输入字符串xml的查找或快速查找,指定元素或属性
"ValueParam=response_ctiy", //存储查询结果的输出参数的名称
LAST); //lr_output_message("返回的城市名称:%s",lr_eval_string("{response_ctiy}")); result = strcmp(lr_eval_string("{send_city}"),lr_eval_string("{response_ctiy}")); //对比输入参数是否与输出结果一致 //判断是否相等
if(result==)
{
lr_end_transaction("获取城市天气预报", LR_PASS);
}
else
{
lr_end_transaction("获取城市天气预报", LR_FAIL);
} return ;
}

运行结果:

Starting iteration .
Starting action Action.
Action.c(): Notify: Transaction "获取城市天气预报" started.
Action.c(): SOAP request "SOAP Request" started
Action.c(): SOAP request "SOAP Request" was successful
Action.c(): 接口返回信息为:<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><getWeatherbyCityNameResponse xmlns="http://WebXml.com.cn/"><getWeatherbyCityNameResult><string>直辖市</string><string>北京</string><string></string><string>.jpg</string><string>// ::</string><string>℃/℃</string><string>4月18日 多云</string><string>东北风转南风3-4级</string><string>.gif</string><string>.gif</string><string>今日天气实况:气温:℃;风向/风力:南风 3级;湿度:%;紫外线强度:弱。空气质量:良。</string><string>紫外线指数:弱,辐射较弱,涂擦SPF12-、PA+护肤品。
健臻·血糖指数:较易波动,血糖较易波动,注意监测。
穿衣指数:较舒适,建议穿薄外套或牛仔裤等服装。
洗车指数:较适宜,无雨且风力较小,易保持清洁度。
空气污染指数:良,气象条件有利于空气污染物扩散。
</string><string>℃/℃</string><string>4月19日 多云转小雨</string><string>南风小于3级</string><string>.gif</string><string>.gif</string><string>℃/℃</string><string>4月20日 小雨转多云</string><string>东北风转北风小于3级</string><string>.gif</string><string>.gif</string><string>北京位于华北平原西北边缘,市中心位于北纬39度,东经116度,四周被河北省围着,东南和天津市相接。全市面积一万六千多平方公里,辖12区6县,人口1100余万。北京为暖温带半湿润大陆性季风气候,夏季炎热多雨,冬季寒冷干燥,春、秋短促,年平均气温10-12摄氏度。北京是世界历史文化名城和古都之一。早在七十万年前,北京周口店地区就出现了原始人群部落“北京人”。而北京建城也已有两千多年的历史,最初见于记载的名字为“蓟”。公元前1045年北京成为蓟、燕等诸侯国的都城;公元前221年秦始皇统一中国以来,北京一直是中国北方重镇和地方中心;自公元938年以来,北京又先后成为辽陪都、金上都、元大都、明清国都。1949年10月1日正式定为中华人民共和国首都。北京具有丰富的旅游资源,对外开放的旅游景点达200多处,有世界上最大的皇宫紫禁城、祭天神庙天坛、皇家花园北海、皇家园林颐和园,还有八达岭、慕田峪、司马台长城以及世界上最大的四合院恭王府等各胜古迹。全市共有文物古迹7309项,其中国家文物保护单位42个,市级文物保护单位222个。北京的市树为国槐和侧柏,市花为月季和菊花。另外,北京出产的象牙雕刻、玉器雕刻、景泰蓝、地毯等传统手工艺品驰誉世界。</string></getWeatherbyCityNameResult></getWeatherbyCityNameResponse></soap:Body></soap:Envelope>
Action.c(): "lr_xml_get_values" succeeded, match processed
Action.c(): Notify: Transaction "获取城市天气预报" ended with a "Pass" status (Duration: 0.2918 Wasted Time: 0.0522).
Ending action Action.
Ending iteration .

使用loadrunner编写webservice接口请求的更多相关文章

  1. Loadrunner模拟JSON接口请求进行测试

    Loadrunner模拟JSON接口请求进行测试     一.loadrunner脚本创建 1.Insert - New step -选择Custom Request -  web_custom_re ...

  2. 通过jmeter发送webservice接口请求

    1.webservice接口地址:http://ip:port/...?wsdl 2.接口数据类型:<cuxGmiChukuRmaTrxV><salesrepId xmlns:xsi ...

  3. loadrunner做webservice接口之简单调用

    今天听大神讲了webservice做接口,我按照他大概讲的意思自己模拟实战了下,可能还有很多不对,一般使用webservice做接口,会使用到soapui,但是用了loadrunner以后发现lr很快 ...

  4. loadrunner录制webservice接口需要用户名密码时的解决方法

    当loadrunner进行webservice测试,进入访问地址,限制要输入用户名密码才能登陆时,添加以下代码: web_set_user("acerpc/admin"," ...

  5. python编写webservice接口

    1.pip install suds-jurko 2.pip install client #coding=utf-8 from suds.client import Client class Web ...

  6. LR编写webservice协议接口

    转自:http://lovesoo.org/use-loadrunner-call-webservice-interface-testing-optimization-summary.html 本文主 ...

  7. 如何高效的进行WebService接口性能测试

    版权声明:本文为原创文章,转载请先联系并标明出处 关于接口测试的理解,主要有两类,一类是模块与模块间的调用,此类接口测试应该归属于单元测试的范畴,主要测试模块与模块之间联动调用与返回.此类测试大多关注 ...

  8. jmeter-测试webservice接口

    测试webservice接口(soap类型接口) 一.webservice协议的本质 一个经过封装的post类型的HTTP请求 Web service一般就是用SOAP协议通过HTTP来调用它,其实他 ...

  9. Loadrunner Webservice接口性能测试脚本编写优化总结

    本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...

随机推荐

  1. Nginx配置不当可能导致的安全问题

    Nginx配置不当可能导致的安全问题 Auther: Spark1e目前很多网站使用了nginx或者tenginx(淘宝基于Nginx研发的web服务器)来做反向代理和静态服务器,ningx的配置文件 ...

  2. 发布到FaceBook试玩广告,FaceBook要求要一个Html文件

    Facebook 试玩广告具体要求: 试玩广告参数是创建试玩广告素材时要满足的要求. 试玩素材应为 HTML5 格式. 试玩广告素材不应使用 mraid.js 格式. 包含所有素材的试玩广告的单个 H ...

  3. U-net网络实现医学图像分割以及遥感图像分割源代码

    U-net网络主要思路是源于FCN,采用全卷积网络,对图像进行逐像素分类,能在图像分割领域达到不错的效果. 因其网络结构类似于U型,所以以此命名,可以由其架构清晰的看出,其构成是由左端的卷积压缩层,以 ...

  4. JS中将json字符串转为json对象的三种方式

    第一种:利用JSON的parse方法,即jsonObj=JSON.parse(jsonStr); 第二种:jsonObj = eval('(' + jsonStr+ ')'); 第三种:比较难理解:j ...

  5. laravel----------Client error: `POST http://47.98.116.219/oauth/token` resulted in a `401 Unauthorized` response: {"error":"invalid_client","message":"Client authentication failed"}

    1.设备没有授权,原因是 这个client_id的值就是数据库wk_oauth_clients 的主键ID,查看下表是否有这条数据

  6. sql多行多列重复

      在sql的查询中我们会遇到查询的结果比如这样的: 查询这张表的sql语句: select r.ROLE_NAME,u.USERID,u.USERNAME,u.TrueName from BASE_ ...

  7. 字王大藏经体v0.1概念版

    字王大藏经体v0.1概念版 zw-dzj 字王大藏经体v0.1概念版,是字王<中华大字库>2018版升级过程当中,在Github搜索资源时的意外惊喜. 大藏经为佛教经典的总集,简称为藏经. ...

  8. java串口通信丢包

    java串口通信丢包问题 前段时间公司要求做一个java应用和pos串口通信的工具,调试好了好久每次都是只能接收到一包数据后续的数据都丢失了. 经过修改读写的流的缓存大小亲测都正常代码如下: seri ...

  9. 宝塔安装swoole

    新建文件夹 mkdir swoole 切入到文件夹中,进行下载安装包 wget http://pecl.php.net/get/swoole-4.3.2.tgz 解压 tar -zxvf swoole ...

  10. redis参数说明

    感谢网友分享. 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 2. 当Redis以守护进程方式运行时,Redis默认会把pid写 ...