loadrunner之WebServices协议脚本编写(三种请求模式)
以天气预报网站为例:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
一、web_service_call模式
步骤如下:
经过增加事务和if 判断的脚本如下:
- Action()
- {
- lr_start_transaction("获取天气预报");
- web_service_call(
- "StepName=getWeatherbyCityName_102",
- "SOAPMethod=WeatherWebService|WeatherWebServiceSoap|getWeatherbyCityName", //服务名称|soap|获取哪个接口(城市天气预报)
- "ResponseParam=response", //返回的参数信息
- "Service=WeatherWebService", // webservice的服务
- "ExpectedResponse=SoapResult", //请求的返回
- "Snapshot=t1555506477.inf",
- BEGIN_ARGUMENTS, //输入参数开始
- "theCityName={NewParam}", //请求输入
- END_ARGUMENTS, //结束参数
- BEGIN_RESULT, //返回值得开始
- "getWeatherbyCityNameResult/*[2]=Param_string", //返回的参数保存在Param_string
- END_RESULT, //返回值结束
- LAST);
- if(strcmp(lr_eval_string("{NewParam}"),lr_eval_string("{Param_string}"))==){
- lr_end_transaction("获取天气预报", LR_PASS);
- }else{
- lr_end_transaction("获取天气预报", LR_FAIL);
- }
- return ;
- }
二、soap_request模式 (外加查看请求报文的小插曲)
当开发只给你一个地址时,我们可以使用 soap UI 工具查看 步骤如下:
lr12 操作步骤如下:
根据城市名获取天气预报的接口文档地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getSupportCity
脚本加上改造之后的如下:
- Action()
- {
- lr_convert_string_encoding(lr_eval_string("{city_name}"),NULL,"utf-8","city");
- lr_save_string(lr_eval_string("{city}"),"cityName");
- // lr_think_time(10);
- lr_start_transaction("获取天气预报");
- soap_request("StepName=SOAP Request",
- "URL=http://www.webxml.com.cn/WebServices/WeatherWebService.asmx",
- "SOAPEnvelope="
- "<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>{cityName}</theCityName>"
- "</getWeatherbyCityName>"
- "</soap:Body>"
- "</soap:Envelope>",
- "SOAPAction=http://WebXml.com.cn/getWeatherbyCityName",
- "ResponseParam=response",
- "Snapshot=t1555573201.inf",
- LAST);
- lr_xml_get_values("XML={response}",
- "Query=/Envelope/Body/getWeatherbyCityNameResponse/getWeatherbyCityNameResult/string[2]",
- "ValueParam=responseValue",
- LAST);
- lr_output_message("返回城市名称:%s",lr_eval_string("{responseValue}"));
- if(strcmp(lr_eval_string("{responseValue}"),lr_eval_string("{city_name}"))==){ //响应的参数 与参数化转码之前的参数对比
- lr_end_transaction("获取天气预报", LR_PASS);
- }else{
- lr_end_transaction("获取天气预报", LR_FAIL);
- }
- return ;
- }
运行结果:
三、web_custom_request函数,创建HTTP协议完成webserive协议
脚本如下:
- Action()
- {
- web_custom_request("web_custom_request",
- "URL=http://www.webxml.com.cn/WebServices/WeatherWebService.asmx",
- "Method=POST",
- "TargetFrame=",
- "Resource=0",
- "Referer=",
- "Mode=HTTP",
- "EncType=application/soap+xml; charset=utf-8",
- "Body=<?xml version=\"1.0\" encoding=\"utf-8\"?>"
- "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"
- "<soap12:Body>"
- "<getWeatherbyCityName xmlns=\"http://WebXml.com.cn/\">"
- "<theCityName>59134</theCityName>"
- "</getWeatherbyCityName>"
- "</soap12:Body>"
- "</soap12:Envelope>",
- LAST);
- return ;
- }
loadrunner之WebServices协议脚本编写(三种请求模式)的更多相关文章
- Loadrunner Webservice接口性能测试脚本编写优化总结
本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...
- LoadRunner录制HTTPS协议脚本
学习LoadRunner录制HTTPS协议脚本,其实是一个意外的收获.当我拿到要测试的URL时,我像以前的步骤一样录制脚本,但是录制结束后,发现并没有生成脚本,开始以为是LoadRunner的原因,我 ...
- js架构设计模式——你对MVC、MVP、MVVM 三种组合模式分别有什么样的理解?
你对MVC.MVP.MVVM 三种组合模式分别有什么样的理解? MVC(Model-View-Controller)MVP(Model-View-Presenter)MVVM(Model-View-V ...
- 云计算的三种服务模式:SaaS/PaaS/IaaS
转载http://blog.chinaunix.net/uid-22414998-id-3141499.html 定义 云计算主要分为三种服务模式,而且这个三层的分法重要是从用户体验的角度出发的: S ...
- 云计算三种服务模式SaaS、PaaS和IaaS及其之间关系(顺带CaaS、MaaS)
云计算架构图 很明显,这五者之间主要的区别在于第一个单词,而aaS都是as-a-service(即服务)的意思,这五个模式都是近年来兴起的,且这五者都是云计算的落地产品,所以我们先来了解一下云计算是什 ...
- 云计算 --> 三种服务模式IaaS,PaaS,SaaS
三种服务模式IaaS,PaaS,SaaS “云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或者运行在远程服务器端的应用,数据,或者服务.任何一个使用基于互联网的方法来计算,存储和开 ...
- APP的三种开发模式
转载于http://pleasureswx123.github.io/2014/09/15/APP%E7%9A%84%E4%B8%89%E7%A7%8D%E5%BC%80%E5%8F%91%E6%A8 ...
- 云计算的三种服务模式:IaaS,PaaS和SaaS
云服务”现在已经快成了一个家喻户晓的词了.如果你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,因为很多人确实不知道. “云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或 ...
- 初识云计算的三种服务模式 (IaaS SaaS PaaS)
近期公司在使用其它云服务的同一时候.要封装自己的云服务,以下作为开发产品前的热身.来了解云计算中的三种服务模式,笔者也是从网络上查找,进行综合总结.请拍.. 三种服务模式 依据如今最经常使用.也就是比 ...
随机推荐
- LINUX内核分析第八周总结:进程的切换和系统的一般执行过程
一.进程调度与进程切换 1.不同的进程有不同的调度需求 第一种分类: I/O密集型(I/O-bound) 频繁的进行I/O 通常会花费很多时间等待I/O操作的完成 CPU密集型(CPU-bound) ...
- 探秘Java中的String、StringBuilder以及StringBuffer(转载)
探秘Java中String.StringBuilder以及StringBuffer 相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方,今天就来和大家一起学习一 ...
- shell脚本--制作自己的服务脚本
首先注意一下,我用的环境是centos6.5,中间有一些操作和在Ubuntu上有一些地方的操作是不同的, 编写脚本 首先看一个实例:假设有一个test的服务,可以通过命令对test进行启动.关闭或者重 ...
- Smarty 变量修饰器
为了更方便的实现 功能与显示分离,通常会用 smarty 将功能代码中的数据 assign 到页面中,在页面中合理使用 smarty 的修饰方法,会使页面显示更美观! 一个数据可同时使用多个修饰函数, ...
- 使用ssh tunnel 来做代理或跳板
接前文 http://www.cnblogs.com/piperck/p/6188984.html 使用ssh config配置文件来管理ssh连接 前文说了如何配置自己的ssh config 来方 ...
- sleep、yield、wait、join的区别(阿里面试)
1. Thread.sleep(long) 和Thread.yield()都是Thread类的静态方法,在调用的时候都是Thread.sleep(long)/Thread.yield()的方式进行调 ...
- Java微信二次开发(八)
高级接口,先做了两个(获取用户信息和获取关注者列表) 第一步:找到包com.wtz.vo,新建类UserInfo.java package com.wtz.vo; /** * @author wang ...
- python之tkinter使用-文件系统遍历
# tkinter:文件系统遍历 import tkinter as tk, os from time import sleep class DirList(object): def __init__ ...
- 如何停止处于stopping状态的windows服务
工作中有时需要启动和停止windows service,有时候会出现服务处于stopping或者starting的状态,但是,在services界面中,start service/stop servi ...
- Luogu4221 WC2018州区划分(状压dp+FWT)
合法条件为所有划分出的子图均不存在欧拉回路或不连通,也即至少存在一个度数为奇数的点或不连通.显然可以对每个点集预处理是否合法,然后就不用管这个奇怪的条件了. 考虑状压dp.设f[S]为S集合所有划分方 ...