LR12中针对WebServices协议的三种脚本开发模式

Loadrunner 脚本开发实战-webservice 协议

第一种:

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

点击ok,生成函数:

web_service_call( 
        "StepName=getWeatherbyCityName_101",  //步骤的名称
        "SOAPMethod=WeatherWebService|WeatherWebServiceSoap|getWeatherbyCityName",  //服务名称 soap 获取哪个接口(城市天气预报)
        "ResponseParam=response",      //返回的参数信息
        "Service=WeatherWebService",     //webservice 的服务
        "ExpectedResponse=SoapResult",     //请求的返回
        "Snapshot=t1555665434.inf",        //快照
        BEGIN_ARGUMENTS,              //开始输入参数
        "theCityName={city_name}",          //请求输入 城市=。。。
        END_ARGUMENTS,       //结束参数
        BEGIN_RESULT,//返回值的开始
        "getWeatherbyCityNameResult/*[2]=Param_string",  //返回参数保存在Param_string中
        END_RESULT, // 返回值的结束
        LAST);

开启扩展日志,去运行脚本

脚本乱码,去复制到文本中设置编码后查看

第二种:

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

lr_xml_get_values()函数的使用

运行报:

鐨勮姹\x82

Action.c(7): Error:HTTP status code 400 returned by the server

Action.c(7): Error:SOAP request "SOAP Request" execu

需要重建项目,去运行

参考脚本:

Action()
    
{
    //lr_convert_string_encoding("{cityname}",NULL,"utf-8","cityname");  // 对中文UTF-8转换成lr的编码方式
    lr_convert_string_encoding(lr_eval_string("{cityname}"),NULL,"utf-8","cityname");
    lr_save_string(lr_eval_string("{cityname}"),"city_name");//字符串1的值赋值给字符串2
    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>{cityname}</theCityName>"
                "</getWeatherbyCityName>"
            "</soap:Body>"
        "</soap:Envelope>",                                        
        "SOAPAction=http://WebXml.com.cn/getWeatherbyCityName",                                        
        "ResponseParam=response",            //存贮服务器响应的输出参数的名称                            
        "Snapshot=t1555667792.inf",            //快照                            
        LAST);
    
    lr_convert_string_encoding(lr_eval_string("{response}"),"utf-8",NULL,"msg");  // 对中文进行UTF-8转码
    
    //根据xml信息去填入
    lr_xml_get_values("XML={response}",   //获取返回消息体
                      "Query=/Envelope/Body/getWeatherbyCityNameResponse/getWeatherbyCityNameResult/string[2]",//对输入的,返回的字符串xml 的查找或快速查找,可指定元素或者属性
                      "ValueParam=responseValue",            //存贮查询结果的输入参数的名称 自己取的名称
                      LAST);              // yes 会出来匹配的所有元素 no 只匹配一个
    
    
    lr_output_message("返回城市名称:%s",lr_eval_string("{responseValue}"));
    if(strcmp(lr_eval_string("{responseValue}"),lr_eval_string("{cityname}"))==0){ //响应的参数  与参数化转码之前的参数对比
         lr_end_transaction("获取天气预报", LR_PASS);
    }else{
         lr_end_transaction("获取天气预报", LR_FAIL);
    }
    
    
    //报错:Action.c(5): Error:HTTP Transport Provider function httpeng_request failed: rc=1001
    //原因: "URL=http://www.webxml.com.cn/WebServices/WeatherWebService.asmx",    地址错误,少了http
    //报错:Failed to connect to server "www.webxml.com.cn:80": [10060] Connection timed out
    //原因:连接断开需要重建脚本
    
    return 0;
}

第三种:

Web_custom_request() 模式开发webservice 协议

新建脚本选择webservice 协议

使用函数web_custom_request

去http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getWeatherbyCityName连接中查看接口信息

Url:http://WebXml.com.cn//WebServices/WeatherWebService.asmx

 

怎么获取报文信息:

在无接口文档的前提下:就使用soapui 去获取接口需要的信息

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

原文地址:https://www.cnblogs.com/michelle58/p/10750771.html

时间: 2024-11-10 14:30:36

LR12中针对WebServices协议的三种脚本开发模式的相关文章

Java中获取键盘输入值的三种方法

Java中获取键盘输入值的三种方法     Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧: 以下将列出几种方法: 方法一:从控制台接收一个字符,然后将其打印出来 import java.io.*; public static void main(String [] args) throws

【转载】取得系统中网卡MAC地址的三种方法

From:http://blog.csdn.net/zhangting1987/article/details/2732135 网卡地址这个概念有点混淆不清.因为实际上有两个地址,mac地址和物理地址,一般说网卡地址我是指物理地址,不知道别人怎么看?物理地址指的是网卡上的存放地址的ROM里的地址,mac地址是这块卡工作的时候用的地址,一般情况下这两个地址是一样的,所以很多人都混用了,甚至不知道有区别  -_-# 网卡工作的时候,一个以太网帧60到1514(不包括crc),帧的crc是网卡自动加的

java小知识点(一)---Java中获取键盘输入值的三种方法

Java中获取键盘输入值的三种方法   程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧:   以下将列出几种方法:   方法一:从控制台接收一个字符,然后将其打印出来   publicstatic void main(String [] args) throws IOException{   Sys

Html5 页面中 JavaScript 启动调用的三种方法比较

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 首先,来看一下 Html5 页面引用 JavaScript 代码的几种方式: 1.Html5 页面中使用 <script>  标签容纳

PDO 中支持三种错误处理模式:

PDO 支持三种错误处理模式: 静默模式,警告模式,异常模式 静默模式是默认的,需要修改的话,通过设置 PDO 对象的属性完成. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT)? $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING)?? $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT)?

cocos2d 中加入显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)

在 cocos2d 中有三个类能够在层或精灵中加入文字: CCLabelTTF CCLabelBMFont CCLabelAtlas      CCLabelTTF CCLabelTTF 每次调用 setString (即改变文字)的时候,一个新的OPENGL 纹理将会被创建..这意味着setString 和创建一个新的标签一样慢. 所以,当你须要频繁的更新它们的时候,尽可能的不用去使用标签对象.  而应该使用CCLabelAtlas或者是CCLabelBMFont. OK, 看下它的用法 CC

Android中设置文本颜色的三种方法及颜色大全

原文:Android中设置文本颜色的三种方法及颜色大全 源代码下载地址:http://www.zuidaima.com/share/1550463694572544.htm 1.利于系统自带的颜色类 如TextView1.setTextColor(Android.graphics.Color.RED); 2.数字颜色表示法 TextView1.setTextColor(0xffff00ff); 3.自定义颜色 TextView1.setTextColor(this.getResources().

JSP中设置Session有效时间的三种方式

JSP中设置Session有效时间的三种方式 2010-08-03 10:02:49|  分类: Java Web|举报|字号 订阅 (1)在主页面或者公共页面中加入: HttpSession session=request.getSession(true); session.setMaxInactiveInterval(900);参数900单位是秒,即在没有活动15分钟后,session将失效.这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端.所以如果是在调试程序,应该

页面中插入CSS样式的三种方法

页面中插入css样式的三种方法总结 1. 外部样式 当样式需要应用于很多页面时,外部样式表将是理想的选择.在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观.每个页面使用<link>标签链接到样式表. <link>标签在(文档的)头部: <head> <link rel="stylesheet" type="text/css" href="path/myCss.css"/> <