使用loadrunner编写webservice接口请求

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 0;
}

                    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_stringEND_RESULT, //返回值的结束
        LAST);result = strcmp(lr_eval_string("{city_name}"),lr_eval_string("{Param_string}"));  //对比输入参数是否与输出结果一致//判断是否相等if(result==0){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 0;
}

 

                     运行结果:

Starting iteration 1.
Starting action Action.
Action.c(6): Notify: Transaction "获取城市天气预报" started.
Action.c(8): Web service call "getWeatherbyCityName_102" started
Action.c(8): Web service call "getWeatherbyCityName_102" was successful
Action.c(28): Notify: Transaction "获取城市天气预报" ended with a "Pass" status (Duration: 0.4751 Wasted Time: 0.2191).
Action.c(35): result:0
Action.c(39): 接口返回信息为:<?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>54511</string><string>54511.jpg</string><string>2019/4/18 22:53:05</string><string>10℃/23℃</string><string>4月18日 多云</string><string>东北风转南风3-4级</string><string>1.gif</string><string>1.gif</string><string>今日天气实况:气温:12℃;风向/风力:西南风 3级;湿度:36%;紫外线强度:弱。空气质量:良。</string><string>紫外线指数:弱,辐射较弱,涂擦SPF12-15、PA+护肤品。
健臻·血糖指数:较易波动,血糖较易波动,注意监测。
穿衣指数:较舒适,建议穿薄外套或牛仔裤等服装。
洗车指数:较适宜,无雨且风力较小,易保持清洁度。
空气污染指数:良,气象条件有利于空气污染物扩散。
</string><string>10℃/17℃</string><string>4月19日 多云转小雨</string><string>南风小于3级</string><string>1.gif</string><string>7.gif</string><string>10℃/16℃</string><string>4月20日 小雨转多云</string><string>东北风转北风小于3级</string><string>7.gif</string><string>1.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 1.

 

 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==0){lr_end_transaction("获取城市天气预报", LR_PASS);}else{lr_end_transaction("获取城市天气预报", LR_FAIL);}return 0;
}

 

                         运行结果:

Starting iteration 1.
Starting action Action.
Action.c(6): Notify: Transaction "获取城市天气预报" started.
Action.c(11): SOAP request "SOAP Request" started
Action.c(11): SOAP request "SOAP Request" was successful
Action.c(31): 接口返回信息为:<?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>54511</string><string>54511.jpg</string><string>2019/4/18 23:14:10</string><string>10℃/23℃</string><string>4月18日 多云</string><string>东北风转南风3-4级</string><string>1.gif</string><string>1.gif</string><string>今日天气实况:气温:12℃;风向/风力:南风 3级;湿度:36%;紫外线强度:弱。空气质量:良。</string><string>紫外线指数:弱,辐射较弱,涂擦SPF12-15、PA+护肤品。
健臻·血糖指数:较易波动,血糖较易波动,注意监测。
穿衣指数:较舒适,建议穿薄外套或牛仔裤等服装。
洗车指数:较适宜,无雨且风力较小,易保持清洁度。
空气污染指数:良,气象条件有利于空气污染物扩散。
</string><string>10℃/17℃</string><string>4月19日 多云转小雨</string><string>南风小于3级</string><string>1.gif</string><string>7.gif</string><string>10℃/16℃</string><string>4月20日 小雨转多云</string><string>东北风转北风小于3级</string><string>7.gif</string><string>1.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(33): "lr_xml_get_values" succeeded, 1 match processed
Action.c(46): Notify: Transaction "获取城市天气预报" ended with a "Pass" status (Duration: 0.2918 Wasted Time: 0.0522).
Ending action Action.
Ending iteration 1.

 

转载于:https://www.cnblogs.com/benben-wu/p/10733266.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验二《Java面向对象程序设计》实验报告

一、实验内容 初步掌握单元测试和TDD理解并掌握面向对象三要素&#xff1a;封装、继承、多态初步掌握UML建模熟悉S.O.L.I.D原则了解设计模式 二、实验步骤 &#xff08;一&#xff09;单元测试 1.三种代码&#xff1a;伪代码、测试代码、产品代码需求&#xff1a;在一个MyUtil类…

iOS开发那些事--创建基于故事板的iOS 6的HelloWorld

基于故事板的HelloWorld工程 Storyboard&#xff08;故事板&#xff09;是用来替代xib的技术&#xff0c;也是iOS 5最重要的新特性之一。我们用Storyboard&#xff08;故事板&#xff09;重构HelloWorld。 使用故事板重构HelloWorld 勾选“Use Storyboards”项。 工程创建完成之…

基于美国人口数据分析

https://github.com/jakevdp/PythonDataScienceHandbook 英文看不懂的话请自行选择中文翻译版转载于:https://www.cnblogs.com/Lucifer77/p/10741538.html

MySQL innodb每行数据长度的限制

今天在使用MySQL innodb时&#xff0c;create table时&#xff0c;报出这样的一个错误: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs 查阅MySQL的官方资料才发现&…

Hibernate实体JSONObject化时遇到的问题

2019独角兽企业重金招聘Python工程师标准>>> ###在对Hibernate持久化的对象进行JSON化的时候&#xff0c;出现了几个问题。 第一个是因为在对象中有相互引用&#xff0c;如A->B,B.set->A这样的一对多关系&#xff0c;使得在遍历构造JSON时&#xff0c;产生了死…

截取中英文字符串

代码 functionsubstr(str, len){if(!str ||!len) { return; }//预期计数&#xff1a;中文2字节&#xff0c;英文1字节vara 0;//循环计数vari 0;//临时字串vartemp ;for(i0;i<str.length;i){if(str.charCodeAt(i)>255){//按照预期计数增加2a2; }else{ a; }//如果增加计数…

mysql概述

MySql大致分为三层结构&#xff1a; 第一层&#xff1a;客户端并非MySql所独有&#xff0c;例如&#xff1a;连接处理、授权认证、安全等功能均在这一层处理 第二层&#xff1a;核心服务包括查询解析、分析、优化、缓存、内置函数(比如 : 时间、数学、加密等函数)&#xff0c;所…

团队项目-需求分析

团队作业-需求分析 这个作业属于哪个课程https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2这个作业的要求在哪里https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3105团队名称快乐小分队这个作业的目标完成英语学习app&#xff0c;尽量…

REMarkerClusterer

2019独角兽企业重金招聘Python工程师标准>>> REMarkerClusterer 创建和管理大量的标记每个缩放级别的集群。REMarkerClusterer 受苹果的照片应用程序在iPhone上的启发&#xff0c;模仿它的行为提供分组和取消分组集群的动画。 转载:http://www.adobex.com/ios/sourc…

corosync+openais+pacemaker+web

corosync 和openais 各自都能实现群集功能&#xff0c;但是功能比较简单&#xff0c;要想实现功能齐全、复杂的群集&#xff0c;需要将两者结合起来.corosync 和openais 各自都能实现群集功能&#xff0c;但是功能比较简单&#xff0c;要想实现功能齐全、复杂的群集&#xff0c…

解构领域驱动设计(三):领域驱动设计

在上一部分&#xff0c;分层架构的目的是为了将业务规则剥离出来在单独的领域层中进行实现。再回顾一下领域驱动设计的分层中应用层代码的实现。 Override public void pay(int orderId, float amount) {DesignerOrder order designerOrderRepository.selectByKey(orderId); …

iOS 打包.framework(包括第三方、图片、xib、plist文件)详细步骤及需要注意的地方...

https://www.cnblogs.com/yk123/p/9340268.html // 加载自定义名称为Resources.bundle中对应images文件夹中的图片// 思路:从mainbundle中获取resources.bundleNSString *strResourcesBundle [[NSBundle mainBundle] pathForResource:”Resources” ofType:”bundle”];// 找到…

SQL优化准则

1. 在长时间运行的查询和短查询中使用事务 如果预期有一个长时间运行的查询&#xff0c;并且有大量的数据输出时&#xff0c;开发者就应该在BEGIN TRAN 和END TRAN之间使用事务。 这样事务会在缓冲区缓存为独立事务&#xff0c;并会被分配特定内存&#xff0c;以此来提高处理…

预祝大家2011农历新年快乐,宏“兔”大展,心想事成~

预祝大家2011农历新年快乐&#xff0c;宏“兔”大展&#xff0c;心想事成&#xff5e; 又是一年新年到&#xff0c;预祝大家2011农历新年快乐&#xff0c;宏“兔”大展&#xff0c;心想事成&#xff5e; _____________________________________________________ 以下是附带的……

MySQL中的表压缩功能

MySQL版本&#xff1a;8.0.22 os&#xff1a;linux ubuntu 语言&#xff1a;c、c 在MySQL中支持3种类型的表压缩&#xff0c;依次为&#xff1a;传统压缩、TPC压缩、字典压缩。 第一种&#xff1a;传统压缩 传统的表压缩方式是在MySQL5.0.7之前使用的&#xff0c;现在已经废…

net core体系-web应用程序-4asp.net core2.0 项目实战(1)-11项目日志解决方案

本文目录1. Net下日志记录2. NLog的使用 2.1 添加nuget引用NLog.Web.AspNetCore 2.2 配置文件设置 2.3 依赖配置及调用 2.4 日志类型介绍 2.5 产生的日志文件3. 基于Microsoft.Extensions.Logging封装 3.1 添加引用Microsoft.Extensions.Logging 3.2 实现…

strcasecmp()--忽略大小写比较字符串

strcasecmp()的功能是&#xff1a;忽略大小写比较字符串 头文件 #include <strings.h> 函数原型&#xff1a;int strcasecmp(const char *s1, const char *s2); 函数功能: 用来比较参数s1和s2字符串&#xff0c;比较时会自动忽略大小写的差异。 返回值: 若参数字符串…

基于报文地址的策略路由配置示例

【实验拓扑】本文实验采用的交换机是H3C模拟器&#xff0c;下载地址如下&#xff1a; http://forum.h3c.com/forum.php? modviewthread&tid109740&highlightH3C%E6%A8%A1%E6% 8B%9F%E5%99%A8 有兴趣的朋 友可以在论坛上去下载 【组网需求】普通的报文转发是依据报文的…

MySQL单机版Recycle Bin回收站功能

最近调研了阿里的Recycle Bin回收站功能&#xff0c;可以保证数据不丢失。 为了防止开发或运维人员的误操作&#xff0c;比如DROP TABLE/DATABASE、TRUNCATE TABLE&#xff0c;这类DDL语句不具有可操作的回滚特性&#xff0c;而导致数据丢失,AliSQL 8.0(基于MySQL)新特性支持回…

用STATSVN统计公司SVN代码修改

直接用LOG&#xff0c;BOSS还是不满意&#xff0c;那只好架上JDK&#xff0c;用STATSVN了。 跑得还顺利&#xff0c;只是具体代码没跑出来。。 但共用一个帐号&#xff0c;害人呀&#xff0c;还好有提交注释里有程序员的名字。。 STATSVN文档很简单&#xff0c;简单报告也就一个…