loadrunner11下载接口报文的head和body该怎么写

接口测试方法
接口测试方法
  接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。
  方法一、用LoadRunner实现接口测试
  大家都知道LoadRunner是一种性能测试工具,但它也可以用在我们做接口测试的时候。开发人员开发出来的接口,提供给测试人员详细的接口使用说明书,该说明书最基本的要求如下:
  接口测试地址:/SNS/Publish
  请求报文参数说明:
  参数名称
  参数描述
  字符类型
  字符值
  社区ID
  String
  UserID
  用户ID
  String
  CommentsTypeID
  评论类型ID
  String
  CommentsID
  评论ID
  String
  AuthorID
  作者ID
  String
  CommentsContent
  评论内容
  String
  请求报文格式:
  &?xml&version="1.0"&encoding="ISO-8859-1"?&&&Publish&&  &SNSID&123&/SNSID&  &UserID&456&/&UserID&&  &CommentsTypeID&2&/&CommentsTypeID&&  &CommentsID&123&/CommentsID&  &AuthorID&456&/AuthorID&  &CommentsContent&Don't&forget&the&meeting!&/CommentsContent&&&/Publish&
  应答报文的参数接口说明:
  参数名称
  参数描述
  字符类型
  字符值
  UserID
  用户ID
  String
  CommentsTypeID
  评论类型ID
  String
  CommentsID
  评论ID
  String
  CommentsContent
  评论内容
  String
  StatusCode
  返回值
  0代表pass,非0代表fail
  StatusText
  返回信息描述
  String
  &?xml&version="1.0"&encoding="ISO-8859-1"?&&&Publish&&  &UserID&456&/&UserID&&  &CommentsTypeID&2&/&CommentsTypeID&&  &CommentsID&123&/CommentsID&  &CommentsContent&Don't&forget&the&meeting!&/CommentsContent&&  &StatusCode&0&/StatusCode&  &StatusText&发送成功一条评论&/StatusText&&/Publish&
  有了上述的说明书之后,测试人员可以根据文档的描述在LoadRunner书写相应的接口测试脚本。
  LoadRunner中涉及到向服务器发送请求的API方法包括:web_url(),web_submit_form(),web_submit_data(),web_custom_request()。下面介绍两种我常用的方法:
  方法一:使用web_submit_data()
web_submit_data("insert",&&&&& "Action= ",
&&&主编推荐
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
港口与航道工程建设工程法规及相关知识建设工程经济考试大纲矿业工程市政公用工程通信与广电工程
操作系统汇编语言计算机系统结构人工智能数据库系统微机与接口
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
Powerpoint教程WPS教程
电子政务客户关系管理首席信息官办公自动化大数据
职称考试题目
就业指导签约违约职业测评
招生信息考研政治
网络安全安全设置工具使用手机安全
3DMax教程Flash教程CorelDraw教程Director教程
Dreamwaver教程HTML教程网站策划网站运营Frontpage教程
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
互联网电信IT业界IT生活
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
组织运营财务资本
视频播放文件压缩杀毒软件输入法微博
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-web test LoadRunner xml / webservice / json / MQ / soapUI / baowen / WebService - 天行健 - Lindows - ITeye技术网站
博客分类:
loadrunner 学习笔记--Web Services
/page/M0/S227/227297.html
使用loadrunner测试Web Services的程序
.cn/s/blog_0e9d.html
首页&& 文章精选&& 测试丛书&& 性能测试进阶指南——LoadRunner 11实战&& 查看资讯
性能测试进阶指南—LoadRunner 11实战(20) 发布时间:
10:42 作者: 陈霁
/html/42/n-815142.html
Loadrunner上传文件解决办法(大文件)
/212/.shtml
Loadrunner 录制WebService协议测试脚本的两种方式 / WebService协议Loadrunner脚本录制的两种方式.doc
/topics/download/be0e0edc-f634-3fbf-8faa-bc4ea7c88ef3
文档背景:
信息体系各系统开发时会和多个系统交互,而交互过程中不可避免的会用到接口,而web service技术无疑提供了一种很好的方式,对于使用web service协议的接口如何进行测试以及测试脚本如何准备,这边基于现有条件,讲解web service协议的接口测试脚本准备的两种方式。
第一种方式:步骤一:需项目组事先提供报文、接口的入口URL以及接口正确调用时的响应。打开loadrunner11,新建单协议脚本,选择webservice协议,如下图1所示
/upload/attachment//ecc50a4c--b1d9-8e1c46bb3c30.png
loadrunner导入soap服务
/upload/attachment/3c2add-3e39-305d-930b-73.png
loadrunner导入soap服务项目组自定义XML文件
/upload/attachment/3dd64d-0f17-342d-b4ef-5d8ef527a4db.png
步骤三:打开报文后,点击图三中的Load按钮,点击后如图四所示,在URL栏中,输入接口的地址,再在soap action中输入该接口的操作名称,可任意填写,但是最好是和接口所代表的意思一致,便于识别。这边用的例子为:
loadrunner导入soap_url和soap_saction业务名称
/upload/attachment/afe3--e3a49993fdb6.jpg
步骤四:点击OK,添加事务以及相应检查点和参数化。即可生成脚本。
/upload/attachment/c651c8-da91-ea.png
// 最好加上如下xml描述文件
web_add_header("Content-Type","application/xml");
// 最好加上如上xml描述文件
步骤五:脚本生成后,可以运行下,看脚本的相应是否和项目组提供的一致,如果一致的话,说明脚本正确,不一致的话,需要调试,至于如何调试,在此不一一赘述。唯一的条件是如果项目组提供的xml报文中的参数有中文,在转化成脚本后会成为乱码,最好采用数据或者字母,如果必须是中文的话,需要做转码处理。
===================================================================================
第二种方式:以pos价格服务的脚本准备为例
步骤一:打开loadrunner11,新建单协议脚本,选择webservice协议,如下图1所示
/upload/attachment//ecc50a4c--b1d9-8e1c46bb3c30.png
步骤二:步骤一完成后,出现如下界面,如图二,点击Add Service Call如图三所示,在图三中的Service处选择Import Service,选择URL(注:开发人员提供的URL “http://192.168.100.125:8180/ws/AccessWS.jws?wsdl”),点击Import 生成如图四:
/upload/attachment//a68c3819-c3ae--5d.png
/upload/attachment/aa2f52-a657--3eff11e2d2e6.png
点击id字段,选择value输入值,按照这种方法依次将pwd、fn、args字段赋值。如图五
/upload/attachment/d3e501-93bf-3c7c-8d9a-a.png
最后在Output Arguments的processResult处勾选Save returned value in para,如图六,该步骤是为将返回参数打印出来,以此来验证数据的正确性。然后点击OK,如图七:
/upload/attachment/bc5917f-eb12-3400-9ffe-c9c92203a28e.png
添加事务和参数输出后即可:
/upload/attachment/d837b78-6693-39cd-c929f4b7.png
第一种方式和第二种方式各有各的使用优点和局限性,第一种方式,需要项目组提供报文,以及接口访问的url还有报文的响应。
第二种方式,需要了解输入输出参数的名字和类型。如果一个wsdl文件中包含多个接口以及接口和接口之间有关联性的话,脚本准备起来有一定的复杂性。
不过各种方式都要基于项目组所配合的程度以及提供数据的方式,如果提供第一种方便就用第一种,如果第二种方便就用第二种。
loadrunner baowen / 报文 / 接口报文
loadrunner--中台商品寻源接口报文样例
D:\TestCase\_zhongtai_xunyuan\TC_SSDS_PageSource\TC_SSDS_PageSource.usr
lr_start_transaction("pageSource");
web_reg_find("Fail=NotFound",
"Search=All",
"SaveCount=pageCount",
"Text=&Status&COMPLETE&/Status&",
web_custom_request("PageSource",
"URL=s*****.com/ssds-web/onLinePageSource.htm",
//RL=http://10.27.39.75:9080/ssds-web/onLinePageSource.htm",
// "URL=http://10.27.39.69:9080/ssds-web/onLinePageSource.htm",
// "URL=http://10.27.39.56:9080/ssds-web/onLinePageSource.htm",
// "URL=http://10.27.39.55:9080/ssds-web/onLinePageSource.htm",
"Method=POST",
"Mode=HTTP",
"EncType=text/ charset=GB2312",
"Body=&?xml version=\"1.0\" encoding=\"utf-8\"?&"
"&MbfService&"
"&input1&"
"&MbfHeader&"
"&ServiceCode&SearchSourceMgmt&/ServiceCode&"
"&Operation&queryOnlinePageSource&/Operation&"
"&AppCode&B2C&/AppCode&&UId&&/UId&&AuthId&B2C;iEIKQ1lqBnW$&/AuthId&&/MbfHeader&"
"&MbfBody&"
"&onLinePageSourceReq&"
"&cmmdtyCode&{cmmdtyCode}&/cmmdtyCode&"
"&cityCode&{cityCode}&/cityCode&"
"&districtCode&{districtCode}&/districtCode&"
"&supplierCode/&"
"&searchType&01&/searchType&"
"&/onLinePageSourceReq&"
"&/MbfBody&"
"&/input1&"
"&/MbfService&",LAST);
if((atoi(lr_eval_string("{pageCount}"))&1))
lr_end_transaction("pageSource",LR_FAIL);
lr_end_transaction("pageSource",LR_PASS);
(参数文件数据要求:一一对应)
D:\TestCase\_zhongtai_xunyuan\TC_SSDS_PageSource\pageSource.dat
cmmdtyCode,cityCode,districtCode
Loadrunner WebService Exception
SOAP request failed due to incorrect SOAP format
Loadrunner Replay log:
Action.c(14): Error: The reason for the SOAP fault is: "com.s*****.framework.dal.exception.DalException incompatible with com.s×××××.framework.workflow.exception.WorkflowException"
Action.c(14): Error: SOAP request "SOAP Request" execution failed
Loadrunner Test Result:
&soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&
&soap:Body&
&soap:Fault&
&faultcode&soap:Server&/faultcode&
&faultstring&com.s*****.framework.dal.exception.DalException. incompatible with
com.s*****.framework.exception.WorkflowException&/faultstring&
&/soap:Fault&
&soap:Body&
&/soap:Envelope&
Loadrunner Replay log:
Virtual User Script started at :
Starting action vuser_init.
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Action.
Action.c(7): SOAP request "SOAP Request" started
Action.c(7): Warning: HTTP status code 500 returned by the server
Action.c(7): Error: The reason for the SOAP fault is:"Error reading XMLStreamReader."
Action.c(7): Error: SOAP request "SOAP Request" execution failed
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.
Loadrunner Replay log:
Virtual User Script started at :
Starting action vuser_init.
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Action.
Action.c(7): SOAP request "SOAP Request" started
Action.c(7): Warning: HTTP status code 500 returned by the server
Action.c(7): Error: The reason for the SOAP fault is:"Error parsing document.. Nested exception is com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 start byte 0xbb (at char #1601, byte #1120)"
Action.c(7): Error: SOAP request "SOAP Request" execution failed
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.
Tip: To better understand the cause of failed steps, you can record movie clips of run sessions and view them together with the step result details.
在loadrunner测试脚本里加入如下定义描述即可。
web_add_header("Content-Type","application/xml");
Loadrunner Scenario run-time setting 。
loadrunner 场景设置注意事项,当模拟多用户压测时,压测突然停止。
/upload/attachment/fdaa6c-1d15-35c3-a076-91b3b24f2871.png
D:\TestCase\_OA_workflow_db2_update\tc_workflow_start22
Loadrunner Parameter loadrunner参数化设置问题,当取值唯一性unique number的参数设置注意事项
/upload/attachment/71c30a-b-bf42-272bd22eff04.png
D:\TestCase\_OA_workflow_db2_update\tc_workflow_start22
/upload/attachment/fc-3554-aec2-f.png
Virtual User Script started at :
Starting action vuser_init.
Web Services replay version 11.0.0 for WIN2003; Toolkit: "NotDefined"; build 8859
Run-Time Settings file: "D:\TestCase\_OA_workflow_db2_update\tc_workflow_getAvailablePaths\\default.cfg"
Vuser directory: "D:\TestCase\_OA_workflow_db2_update\tc_workflow_getAvailablePaths"
Vuser output directory: "D:\TestCase\_OA_workflow_db2_update\tc_workflow_getAvailablePaths\"
LOCAL start date/time:
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Action.
Action.c(10): Registering web_reg_find was successful
[MsgId: MMSG-26390]
Action.c(16): Notify: Transaction "getAvailablePaths" started.
Action.c(17): SOAP request "SOAP Request" started
Action.c(17): t=417ms: 150-byte response headers for "http://10.19.218.179/snf-workflow-web/webservice/EngineService?wsdl" (RelFrameId=1, Internal ID=1)
Action.c(17):
HTTP/1.1 400 Bad Request\r\n
Action.c(17):
Date: Tue, 13 May :04 GMT\r\n
Action.c(17):
Content-Length: 226\r\n
Action.c(17):
Connection: close\r\n
Action.c(17):
Content-Type: text/ charset=iso-8859-1\r\n
Action.c(17):
Action.c(17): t=431ms: 226-byte response body for "http://10.19.218.179/snf-workflow-web/webservice/EngineService?wsdl" (RelFrameId=1, Internal ID=1)
Action.c(17):
&!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"&\n
Action.c(17):
&html&&head&\n
Action.c(17):
&title&400 Bad Request&/title&\n
Action.c(17):
&/head&&body&\n
Action.c(17):
&h1&Bad Request&/h1&\n
Action.c(17):
&p&Your browser sent a request that this server could not understand.&br /&\n
Action.c(17):
Action.c(17):
&/body&&/html&\n
Action.c(17): Error: HTTP status code 400 returned by the server
Action.c(17): Error: SOAP request "SOAP Request" execution failed
Action.c(17): Notify: Transaction "getAvailablePaths" ended with "Fail" status (Duration: 0.1939 Wasted Time: 0.1633).
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.
//web_add_header("Content-Type","application/xml");
//web_add_header("EncType=text/xml","charset=UTF-8");
//"EncType=text/ charset=GB2312",
web_reg_find("Fail=NotFound",
"Search=All",
"SaveCount=placeflag",
"Text/IC=COMPLETE",
lr_start_transaction("getAvailablePaths");
soap_request("StepName=SOAP Request",
"URL=http://10.19.218.179/snf-workflow-web/webservice/EngineService?wsdl",
"SOAPEnvelope="
//"&?xml version=\"1.0\" encoding=\"GB2312\" ?&"
//这里加上XML编码即可把中文乱码数据传递失败解决
初步调试:WAS 版本 7.0.0.13
单压测WAS1 机器,loadrunner性能平稳,TPS 300笔/秒 ,响应时间 0.057秒
单压测WAS2 机器,拷贝WAS1应用代码包到WAS2,loadrunner性能异常,TPS 100笔/秒(一直下降) ,响应时间 0.057秒(一直上升),停止压测后,应用实例java进程一直占用内存不释放。
查找异常:
应用实例wf_srv2 SystemOut.log
[loguser@wfpreapp2~]$ tail -f/opt/IBM/WebSphere/AppServer/profiles/check/logs/wf_srv2/SystemOut.logSystemOut.log 无异常打印,
[loguser@wfpreapp2 ~]$ more wf_srv2_exception.log
Time of first Occurrence
Time of last Occurrence
Exception SourceId ProbeId
------+------+---------------------------+---------------------------+---------------------------
5/8/14 18:07:14:505 CST
5/8/14 18:07:15:404 CST com.ibm.websphere.management.exception.ConnectorException com.ibm.ws.man
agement.RoutingTable.Accessor.getConnector 583 /opt/IBM/WebSphere/AppServer/profiles/check/logs/ffdc/wf_srv2_4d984d98_14.05.08_18.07.14.521561
5/8/14 18:07:14:609 CST
5/8/14 18:07:15:404 CST com.ibm.websphere.management.exception.ConnectorNotAvailableException co
m.ibm.ws.management.RoutingTable.Accessor.getConnector 610 /opt/IBM/WebSphere/AppServer/profiles/check/logs/ffdc/wf_srv2_4d984d98_14.05.08_18.
07.14..txt
5/8/14 18:09:03:024 CST
5/8/14 18:09:03:024 CST com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException com.ibm.ws.r
sadapter.jdbc.WSJccPreparedStatement.pmiExecuteUpdate 807 /opt/IBM/WebSphere/AppServer/profiles/check/logs/ffdc/wf_srv2_5b205b2_14.05.08_18.09
5/8/14 18:09:03:098 CST
5/8/14 18:09:03:098 CST com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException com.ibm.ws.r
sadapter.jdbc.WSJdbcPreparedStatement.executeUpdate 449 /opt/IBM/WebSphere/AppServer/profiles/check/logs/ffdc/wf_srv2_5b205b2_14.05.08_18.09.0
5/9/14 14:46:28:738 CST
5/9/14 14:46:28:738 CST org.apache.soap.SOAPException com.ibm.ws.management.connector.soap.SOAPC
onnectorClient.invokeTemplate 846 /opt/IBM/WebSphere/AppServer/profiles/check/logs/ffdc/wf_srv2_2fae2fae_14.05.09_14.46.28.0322299
------+------+---------------------------+---------------------------+---------------------------
[loguser@wfpreapp2 ffdc]$ pwd
/opt/IBM/WebSphere/AppServer/profiles/check/logs/ffdc
/upload/attachment/a9b096-a35e-b-c1.png
/upload/attachment/689d19-ec6e-7c5e907fa5.png
异常解决:
最终是因为WAS 集群应用中 两台WAS 连接数据库的驱动jar 不一致导致性能异常,导入最新驱动包解决
Loadrunner WebService Script:
D:\TestCase\_OA_workflow_db2_update\tc_workflow_endTask_soap_request\Action.c
lr_start_transaction("审批流程");
web_add_header("Content-Type","application/xml");
web_reg_find("Fail=NotFound",
"Search=All",
"SaveCount=placeflag",
"Text=COMPLETE",
soap_request("StepName=SOAP Request",
//"URL=s*****.com:9106/SuN***ServiceWeb/mb",
// 如经如经ESB PRE压测则改成这个
"URL=http://10.19.218.179/snf-workflow-web/webservice/EngineService",
"SOAPEnvelope="
"&?xml version=\"1.0\" encoding=\"GB2312\"?&"
"&soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"&"
"&soap:Body&"
、、、、、、
"&/soap:Body&"
"&/soap:Envelope&",
"SOAPAction=endTask",
"ResponseParam=response",
"Snapshot=t.inf",
lr_output_message("output message:%s",lr_eval_string("{placeflag}"));
if((atoi(lr_eval_string("{placeflag}"))&1))
lr_end_transaction("审批流程",LR_PASS);
lr_end_transaction("审批流程",LR_FAIL);
Loadrunner Replay log:
Action.c(98): Warning: The string 'placeflag' with parameter delimiters is not a parameter.
Loadrunner webservice协议的测试脚本soap_request() 方法不支持loadrunner http协议的web_reg_find检查点函数
所以改成web service 脚本soap_request方法的检查点函数
D:\TestCase\_OA_workflow_db2_update\tc_workflow_endTask_soap_request\Action.c
lr_start_transaction("审批流程");
web_add_header("Content-Type","application/xml");
soap_request("StepName=SOAP Request",
//"URL=s*****.com:9106/SuN***ServiceWeb/mb",
// 如经如经ESB PRE压测则改成这个
"URL=http://10.19.218.179/snf-workflow-web/webservice/EngineService",
"SOAPEnvelope="
"&?xml version=\"1.0\" encoding=\"GB2312\"?&"
"&soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"&"
"&soap:Body&"
、、、、、、
"&/soap:Body&"
"&/soap:Envelope&",
"SOAPAction=endTask",
"ResponseParam=response",
"Snapshot=t.inf",
if(strstr(lr_eval_string("{response}"),"COMPLETE")&0)
lr_end_transaction("审批流程",LR_PASS);
lr_end_transaction("审批流程",LR_FAIL);
直接将loadrunner webservice协议的soap_request()方法改成loadrunner http协议的web_custom_resquest()方法,再使用 web_reg_find()函数的检查点,即可。
D:\TestCase\_OA_workflow_db2_update\tc_workflow_endTask_web_custom_request\Action.c
lr_start_transaction("审批流程");
web_reg_find("Fail=NotFound",
"Search=All",
"SaveCount=placeflag",
"Text=COMPLETE",
web_custom_request("Test",
"Method=POST",
"URL=http://10.19.218.179/snf-workflow-web/webservice/EngineService",
"EncType=text/charset=GB2312",
"&?xml version=\"1.0\" encoding=\"GB2312\"?&"
"&soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"&"
"&soap:Body&"
、、、、、、
"&/soap:Body&"
"&/soap:Envelope&",
lr_output_message("output message:%s",lr_eval_string("{placeflag}"));
if((atoi(lr_eval_string("{placeflag}"))&0))
lr_end_transaction("审批流程",LR_PASS);
lr_end_transaction("审批流程",LR_FAIL);
loadrunner测试mq的长连接
loadrunner java测试类中mq的初始化方法放在 init 方法里,循环放在action里即可
如:车辆GPS场景,长连接发数据且24小时发送地理位置GIS信息
Loadrunner Run-time Settings 里设置短连接
/upload/attachment/1b1e9f-d210--63dc4489f19e.png
用Loadrunner录制和测试WebSphere MQ
/thread--1.html
首先安装 MQ License然后安装9.1中的附件安装MQTEST安装成功后可以在录制 协议 中看见支持的语言Application being recorded must be written in C/C++ or Visual Basic.缺点不支持JAVA
使用LoadRunner遇到无法维持长连接的问题
/thread-.html
使用的是LoadRunner 8.0+web service pack.我在RunTime Setting 中的preferences中已经设定了Keep-alive HTTP connection为Yes.使用Wsdl方式录制 web service (soap)脚本 后,在Action中指定了发送请求的操作。实际运行 指定循环1000次,用ethereal抓包发现,每次的http连接都被断掉。检查 抓到的包体:在Post请求的头域中, 给出请求消息为SendSMS HTTP1.1连接头域为Connection: Keep-Alive在服务 器的回应中,没有给出connection头域,使用的编码方式为Transfer-Encoding: chunked.但是在LR收到该请求后,它发出了FIN-ACK包拆除了已有的连接。重新建立一个新的连接再次发送请求。但是我希望它以长连接的方式在已经建立的端口发送,从而提高效率。
你是否在runtime setting中选上了"simulate a new user each iteration"
这样的话,每次迭代,会断开重连.去掉此选项.用ethereal抓包分析.表扬一下!
在脚本中手动写入循环,总算实现了所谓的长连接。然后在设定中选取每REQUEST单位统计。
二楼说的设置是在HTML协议录制时才有的,用WEB SERVICE是没这个东西的,与你说的没有关系。我以前没注意过这方面的问题。但我建议你先看一下软件在实际使用中是否也是要断开的,如果也需要断开,那我建议你不要改脚本,让脚本反映真实情况是最好的做法。如果确实需要想办法解决这个问题,就需要检查脚本执行过程中什么时候断开连接,我估计有几个可能:1。循环1次断1次连接,那肯定是header的问题,它修改了头文件导致需要重新连接,语句肯定是一开始的web_add_auto_header,修 改脚本中的相关内容,或者(也许是并且,没把握)调整录制属性中的header,content,修改脚本的方式是将这些内容放在脚本初始化部分;2。每调用SOAP1次就断1次,那估计有可能是header问题,也可能是soap_request代码的问题。检查方法是试着把 web_add_header内容合并到web_add_auto_header里去。如果是soap_request导致必须先断开才能再调用,那我估 计这个问题没法解决。
确实的,在LR8.0版本中,关于webservice的已经命名为“web service”协议了,在runtimesetting中没有browser选项了但是在7.51版本之前的webservice测试,使用的协议名称为“SOAP”,runtimesetting中有browser emulation选项的。特此更正。
晕,在帮助中都查到了相应的条文,目前暂时还没有发现对应的设定sdlkfj1
我直接在脚本中写入循环,就用简单的for循环。在Run-time Setting -&Miscellaneous-&Automatic Transactions中define each step as a transaction.
to jackloo在http1.1中实现了所谓的长连接,根据我的测试,在使用长连接的情况下,最大北向吞吐量(tomcat+axis)是700左右, (tomcat+xfire)是1600左右。如果使用短连接,最大北向吞吐量(tomcat+axis)是450左右, (tomcat+xfire)是1200左右。同时,CPU的占用率降低了20%左右。(4*3G CPU, 2G MEM, JRE1.4.2)可见,长连接在降低系统开销方面还是有优势的。基于此,所以我们希望使用长连接来进行测试。在脚本中写入循环后,runtime setting中的iteration次数可以写成1,循环次数在脚本中给定。LoadRunner的确功能强大,不过很多地方还是需要动手去调整阿~~
使用LoadRunner遇到无法维持长连接的问题,谢谢大牛了!!!
使用的是LoadRunner 8.0+web service pack.我在RunTime Setting 中的preferences中已经设定了Keep-alive HTTP connection为Yes.使用Wsdl方式录制 web service (soap)脚本 后,在Action中指定了发送请求的操作。实际运行 指定循环1000次,用ethereal抓包发现,每次的http连接都被断掉。检查 抓到的包体:在Post请求的头域中, 给出请求消息为SendSMS HTTP1.1连接头域为Connection: Keep-Alive在服务 器的回应中,没有给出connection头域,使用的编码方式为Transfer-Encoding: chunked.但是在LR收到该请求后,它发出了FIN-ACK包拆除了已有的连接。重新建立一个新的连接再次发送请求。但是我希望它以长连接的方式在已经建立的端口发送,从而提高效率。项目 紧急,请大大们不吝赐教,十分感谢!!!!
你是否在runtime setting中选上了"simulate a new user each iteration"
这样的话,每次迭代,会断开重连.去掉此选项.用ethereal抓包分析.表扬一下!
多谢楼上的指点,不过我翻遍了Controller和User Generator中关于runtime setting的所有设置,并没有发现你所说的选项啊,请解释详细一点,谢谢!!我用的是LR8.0+web service pack 1
晕,在帮助中都查到了相应的条文,目前暂时还没有发现对应的设定sdlkfj1
呵呵,最后没有办法,在脚本中手动写入循环,总算实现了所谓的长连接。然后在设定中选取每REQUEST单位统计。
你脚本怎么写的。二楼说的在:runtime setting-&browser emulation里。
200 字节以内不支持自定义 Discuz! 代码
二楼说的设置是在HTML协议录制时才有的,用WEB SERVICE是没这个东西的,与你说的没有关系。我以前没注意过这方面的问题。但我建议你先看一下软件在实际使用中是否也是要断开的,如果也需要断开,那我建议你不要改脚本,让脚本反映真实情况是最好的做法。如果确实需要想办法解决这个问题,就需要检查脚本执行过程中什么时候断开连接,我估计有几个可能:1。循环1次断1次连接,那肯定是header的问题,它修改了头文件导致需要重新连接,语句肯定是一开始的web_add_auto_header,修 改脚本中的相关内容,或者(也许是并且,没把握)调整录制属性中的header,content,修改脚本的方式是将这些内容放在脚本初始化部分;2。每调用SOAP1次就断1次,那估计有可能是header问题,也可能是soap_request代码的问题。检查方法是试着把 web_add_header内容合并到web_add_auto_header里去。如果是soap_request导致必须先断开才能再调用,那我估 计这个问题没法解决。
二楼说的设置是在HTML协议录制时才有的,用WEB SERVICE是没这个东西的,与你说的没有关系。我以前没注意过这方面的问题。但我建议你先看一下软件在实际使用中是否也是要断开的,如果也需要断开,那我建议你不要改脚本,让脚本反映真实情况是最好的做法。如果确实需要想办法解决这个问题,就需要检查脚本执行过程中什么时候断开连接,我估计有几个可能:1。循环1次断1次连接,那肯定是header的问题,它修改了头文件导致需要重新连接,语句肯定是一开始的web_add_auto_header,修 改脚本中的相关内容,或者(也许是并且,没把握)调整录制属性中的header,content,修改脚本的方式是将这些内容放在脚本初始化部分;2。每调用SOAP1次就断1次,那估计有可能是header问题,也可能是soap_request代码的问题。检查方法是试着把 web_add_header内容合并到web_add_auto_header里去。如果是soap_request导致必须先断开才能再调用,那我估 计这个问题没法解决。
原帖由 jackloo 于
10:38 发表二楼说的设置是在HTML协议录制时才有的,用WEB SERVICE是没这个东西的,与你说的没有关系。
确实的,在LR8.0版本中,关于webservice的已经命名为“web service”协议了,在runtimesetting中没有browser选项了但是在7.51版本之前的webservice测试,使用的协议名称为“SOAP”,runtimesetting中有browser emulation选项的。特此更正。
我直接在脚本中写入循环,就用简单的for循环。在Run-time Setting -&Miscellaneous-&Automatic Transactions中define each step as a transaction.
to jackloo在http1.1中实现了所谓的长连接,根据我的测试,在使用长连接的情况下,最大北向吞吐量(tomcat+axis)是700左右, (tomcat+xfire)是1600左右。如果使用短连接,最大北向吞吐量(tomcat+axis)是450左右, (tomcat+xfire)是1200左右。同时,CPU的占用率降低了20%左右。(4*3G CPU, 2G MEM, JRE1.4.2)可见,长连接在降低系统开销方面还是有优势的。基于此,所以我们希望使用长连接来进行测试。在脚本中写入循环后,runtime setting中的iteration次数可以写成1,循环次数在脚本中给定。LoadRunner的确功能强大,不过很多地方还是需要动手去调整阿~~
loadrunner 学习笔记--Web Services
/page/M0/S227/227297.html
使用loadrunner测试Web Services的程序
.cn/s/blog_0e9d.html
首页&& 文章精选&& 测试丛书&& 性能测试进阶指南——LoadRunner 11实战&& 查看资讯
性能测试进阶指南—LoadRunner 11实战(20) 发布时间:
10:42 作者: 陈霁
/html/42/n-815142.html
Loadrunner上传文件解决办法(大文件)
/212/.shtml
loadrunner 与 xml / loadrunner 与报文 / loadrunner 与Json格式
web_reg_find("Fail=NotFound",
"Search=Body",
"SaveCount=Flag",
"Text=&flag&0&/flag&",
lr_start_transaction("koujianziyuan");
web_custom_request("name",
"URL=s*****.com/scp-web/excuteSale.htm",
"Method=POST",
"Resource=1",
"Mode=HTTP",
"Referer=",
"Body=&?xml version=\"1.0\" encoding=\"utf-8\"?&"
"&MbfService&"
&MbfHeader&"
&ServiceCode&excuteSale&/ServiceCode&"
&Operation&1&/Operation&"
&AppCode&&/AppCode&"
&UId&20bdfcbbed69d76cfdacf64252&/UId&"
&AuthId&POS;O0guYW8sNHON&/AuthId&"
&/MbfHeader&"
" &MbfBody&"
"&sourceSystem&POS&/sourceSystem&"
"&sourceList&"
" &operateType&1&/operateType&"
"&subComId&1001&/subComId&"
"&store&*&/store&"
" &bu&00002&/bu&"
"&invLocat&*&/invLocat&"
" &channel&10&/channel&"
" &resType&0001&/resType&"
"&quato&10&/quato&"
"&serialNumber&CZC&/serialNumber&"
"&/sourceList&"
" &/MbfBody&"
&/input1&"
"&/MbfService&",
lr_end_transaction("koujianziyuan", LR_AUTO);
范例二 loadrunner 与 xml / loadrunner 与报文 / loadrunner 与Json格式
web_reg_find("Fail=NotFound",
"Search=Body",
"SaveCount=Flag",
"Text=&flag&0&/flag&",
web_add_header("Content-Type","application/charset=utf-8");
web_custom_request("modifyStatus",
"URL=s*****.com/nsf-sale-web/useCoupon/syncNonStdOrderCfmUse.do",
"Method=POST",
"Resource=0",
"RecContentType=application/json",
"Mode=HTTP",
"EncType=application/json",
"Referer=",
\"MbfService\": {"
\"input1\": {"
\"MbfHeader\": {"
\"ServiceCode\": \"useCoupon\","
\"AppCode\": \"POS\","
\"Operation\": \"syncNonStdOrderCfmUse\","
\"AuthId\": \"\","
\"UId\": \"\""
\"MbfBody\": {"
\"caller\": \"2\","
\"memberId\": \"\","
\"sourceSystemNo\": \"W\","
\"operateType\": \"1\","
\"channelId\": \"37\","
\"enddeviceId\": \"\","
\"cityId\": \"1000173\","
\"entityStoreId\": \"7610\","
\"productInfoType\": \"2\","
\"productList\": {"
\"productInfo\": ["
\"sourceSystemItemId\": \"W\","
\"commdtyCode\": \"24614X\","
\"productGrpId\": \"\","
\"productListPrice\": \"1000.00\","
\"storeId\": \"\","
\"productQty\": \"1\""
\"couponUsedList\": {"
\"couponUsedInfo\": ["
\"couponNumber\": \"28\","
\"changeHeterotypeId\": \"\""
(188.1 KB)
下载次数: 6
siemens800
浏览: 831832 次
来自: 南京
大师看你天资聪颖,颇有慧根,月圆之时来大师这给你看个手相
大师不应该啊,检查压力机和服务器空间已经成了我压测前的习惯动作 ...
非常不错,多谢了。。
写了这么多
ed2k://|file|LoadRunner.V8.1.is ...}

我要回帖

更多关于 loadrunner教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信