Loadrunner 接口测试的两种方法
使用Loadrunner测试webservice的三种途径

使用Loadrunner测试webservice的三种途径近日研究了一下用Loadrunner测试webservice的三种方法:1. 方法一,调用webservice:一般采取Import wsdl的方式,在Manage Services中将wsdl文件或者访问地址导入,然后Add Service Call。
在添加过程中可以设定参数。
缺陷是如果连接的服务器有用户名和密码限制,可能连不上出错。
Action(){web_service_call( "StepName=sayHi2_101","SOAPMethod=HelloWorld2.HelloWorld2Port.sayHi2","ResponseParam=response","Service=HelloWorld2","Snapshot=t1297747716.inf",BEGIN_ARGUMENTS,"arg0=",END_ARGUMENTS,BEGIN_RESULT,END_RESULT,LAST);return 0;}2. 方法二,导入SOAP:采用Import Soap的方式,将xml文件导入。
URL写上不带wsdl的访问地址,此种方法可以写入用于连接服务器的用户名和密码。
Action(){soap_request("StepName=SOAP Request","URL=http://192.168.1.123/hello2","SOAPEnvelope=""<soap:Envelope xmlns:soap=\"/soap/envelope/\">""<soap:Header>""<soap:username>tttt</soap:username>""<soap:password>123456</soap:password>""</soap:Header>""<soap:Body>""<ns1:sayHi2 xmlns:ns1=\"http://server.hw.demo/\">""<arg0 xmlns=\"http://server.hw.demo/\">1</arg0>""</ns1:sayHi2>""</soap:Body>""</soap:Envelope>","SOAPAction=","ResponseParam=response","Snapshot=t1297753819.inf",LAST);return 0;}3. 方式三,利用HTTP协议访问。
Loadrunner11简单压测接口教程

Loadrunner11简单压测接⼝教程⼀、需求使⽤Loadrunner压测⽬标接⼝,要求⽀持1000并发数。
⽬标接⼝:返回结果:结果返回中code的值为1则为保存成功,为4001则为参数异常,为0时则是保存异常。
执⾏设备:Win10(教育版),Loadrunner11破解中⽂版⼆、概述使⽤Loadrunner进⾏压⼒测试⼀般分为3步,第⼀是创建/编辑脚本,第⼆是运⾏负载测试,第三是分析测试结果。
三、创建/编辑脚本点击“创建/编辑脚本”,打开HP Virtual User Generator窗⼝。
点击“新建脚本”或者打开已有的脚本选择协议类型,这⾥选择Web(HTTP/HTML)类型,新建⼀个脚本。
点击“创建”后,会出现录制的对话框。
因我们是提交请求给接⼝,再接受返回值即可。
因此⽆需录制,我们⼿动添加脚本即可。
接下来我们在Action⾥⾯添加脚本,内容为:Action(){web_reg_save_param("return_code","LB=\"code\":","RB=,",LAST);lr_start_transaction("发送请求事务");web_submit_data("web_submit_data","Action=https:///digitaldata/api/signer/1.0/signerRegist","Method=POST","TargetFrame=","Referer=","RecContentType=application/json",ITEMDATA,"Name=signerName", "Value=xx", ENDITEM,"Name=signerType", "Value=个⼈", ENDITEM,"Name=country", "Value=cn", ENDITEM,"Name=organization", "Value=xxx", ENDITEM,"Name=organizationUnit", "Value=xxx", ENDITEM,"Name=signerIDType", "Value=⾝份证", ENDITEM,"Name=signerIDNo", "Value=xxx", ENDITEM,LAST);lr_end_transaction("发送请求事务", LR_AUTO);if (atoi(lr_eval_string("{return_code}"))==1){lr_output_message("操作成功");}else{lr_output_message(lr_eval_string("{return_code}"));}return0;}脚本的简单解释:web_reg_save_param:主要是获取返回值中某些符合规则的值。
Loadrunner进行http接口压力测试

使用Loadrunner进行http接口压力测试业务描述:在业务系统里进行查询操作,查询的结果是通过请求http接口,从系统中处理并将结果以json字符串返回。
使用Loadrunner对此类接口进行压力测试并记录相关的性能指标数据:一.安装Loadrunner本次测试过程使用Loadrunner 11.0版本。
二.部署环境1.接口服务器一台;2.用于运行Loadrunner的压力测试机1台或N台,在条件允许下,尽可能提供高配置的CPU 和内存。
3.接口服务器和压力测试机建议应部署于同一个局域网内,否则测试过程和结果将受到网络带宽因素的影响无法顺利进行。
三.编写测试脚本方法一. 通过java编写测试类,以jar包的方式引入Loadrunner进行测试。
优点:便于解析接口响应结果,同时避免由于LR脚本编写不规范或配置问题,导致测试过程引发的未知错误。
条件:运行loadrunner的机器需要安装jdk1.6的版本。
1.编写java测试类: CTLPTest.java,如下代码1package com;23import java.io.InputStream;4import .HttpURLConnection;5import .URL;6import java.util.Random;78public class CTLPTest9 {10public static void main(String[] args)11 {12 CTLPTest lbs = new CTLPTest();13 String ltpUrl = lbs.ltpRequestUrl();14 System.out.println(ltpUrl);15 System.out.println(lbs.ltpRequest(ltpUrl));16 }1718public int ltpRequest(String ltpRequestUrl) 19 {20int returnCount = -1;21try22 {23 URL url = new URL(ltpRequestUrl);24//http连接25 HttpURLConnection http = (HttpURLConnection)url.openConnection();26 http.setUseCaches(false);27 http.connect();28//获取http响应流29 InputStream in = http.getInputStream();30//解析响应流31byte[] b = new byte[in.available()];32 in.read(b);33//将响应流转换成字符串34 String res = new String(b);35//根据实际情况,判断响应结果,并设置返回值36int of = res.indexOf("sucess");37if (of < 0) {38 returnCount = -1;39 } else {40 returnCount = 1;41 }42 } catch (Exception e) {43 returnCount = -1;44 }45return returnCount;46 }4748public String ltpRequestUrl() {49 StringBuilder param = newStringBuilder("http://192.168.100.205:8055/CTLP/LtpRequest.json?Imsi= ");50 param.append("userid-1");51param.append("&appName=LBS&Apikey=D39hr1FgplZSjV2eNVW71wvbYbl8Mip4"); 52return param.toString();53 }54 }View Code2.将测试类导出为jar包 : LTPRequest.jar 过程略.3.Loadrunner创建java测试类图1:图2:创建java协议脚本1图3:创建java协议脚本2图4:创建java协议脚本3图5:设置环境变量图6:设置安装的jdk位置目录图7:导入jar包图8:编写脚本内容1package com;23import java.io.InputStream;4import .HttpURLConnection;5import .URL;67public class CTLPTest8 {9public static void main(String[] args)10 {11 CTLPTest lbs = new CTLPTest();12 String ltpUrl = lbs.ltpRequestUrl();13 System.out.println(ltpUrl);14 System.out.println(lbs.ltpRequest(ltpUrl));15 }1617public int ltpRequest(String ltpRequestUrl) 18 {19int returnCount = -1;20try21 {22 URL url = new URL(ltpRequestUrl);23//http连接24 HttpURLConnection http = (HttpURLConnection)url.openConnection();25 http.setUseCaches(false);26 http.connect();27//获取http响应流28 InputStream in = http.getInputStream(); 29//解析响应流30byte[] b = new byte[in.available()];31 in.read(b);32//将响应流转换成字符串33 String res = new String(b);34//根据实际情况,判断响应结果,并设置返回值35boolean of = res.contains("\"state\":1"); 36if (of) {37 returnCount = 1;38 } else {39 returnCount = 0;40 }41 } catch (Exception e) {42 returnCount = -1;43 }44return returnCount;45 }4647public String ltpRequestUrl() {48 StringBuilder param = newStringBuilder("http://192.168.100.205:8055/CTLP/LtpRequest.json?Imsi= ");49 param.append("userid-1");50param.append("&appName=LBS&Apikey=D39hr1FgplZSjV2eNVW71wvbYbl8Mip4"); 51return param.toString();52 }53 }View Code图9:试运行,查看结果说明:至此,完成了java脚本的编写和基本测试,接下来我们就可以使用loadrunner的进行压力测试了。
使用loadrunner的流程

使用LoadRunner的流程1. 简介LoadRunner是一款性能测试工具,可用于模拟并测试不同负载条件下的应用程序性能。
它是业界著名的性能测试工具之一,广泛应用于软件开发和测试领域。
本文将介绍使用LoadRunner的基本流程,包括录制脚本、编辑场景、运行测试、分析结果等内容。
2. 录制脚本使用LoadRunner进行性能测试的第一步是录制脚本。
脚本录制是指将用户对应用程序的操作记录下来,以便后续可以回放并模拟用户行为。
下面是录制脚本的步骤:•打开LoadRunner,选择录制模式。
•配置录制设置,包括选择要录制的应用程序和协议。
•启动录制,执行各项操作,包括登录、浏览网页、提交表单等。
•停止录制,保存录制的脚本文件。
3. 编辑场景录制完脚本后,需要对场景进行编辑和定制,以模拟真实的负载条件。
场景是指一组用户行为的集合,可以包括不同的用户数量、并发用户数量、用户的思考时间、延迟时间等。
以下是编辑场景的步骤:•打开LoadRunner,选择编辑场景模式。
•导入录制的脚本文件。
•配置场景参数,包括虚拟用户数量、并发用户数量、需模拟的业务负载等。
•设置运行时的动态参数,如需替换用户名、密码等敏感信息。
•配置场景的持续时间、循环次数、运行模式等。
4. 运行测试场景编辑完成后,可以开始运行性能测试。
在运行测试期间,LoadRunner将模拟多个虚拟用户并发访问目标应用程序,记录并分析系统的性能指标。
以下是运行测试的步骤:•打开LoadRunner,选择运行测试模式。
•配置测试设置,包括选择要运行的场景、设置测试目标等。
•启动测试运行,观察测试运行的过程。
•监控系统性能指标,如响应时间、吞吐量、服务器负载等。
5. 分析结果性能测试完成后,需要对测试结果进行分析。
LoadRunner提供了丰富的分析工具,用于分析各项性能指标,找出性能瓶颈并提供建议。
以下是分析结果的步骤:•打开LoadRunner的分析工具。
软件测试实验报告loadrunner

软件测试实验报告loadrunner引言软件测试是保证软件质量的重要手段,而性能测试则是其中的一部分。
在实际应用中,软件的性能往往是用户持续使用的关键因素。
本实验通过使用LoadRunner工具对一个Web应用进行性能测试,旨在评估系统的可扩展性和稳定性。
实验目的1. 了解性能测试的概念和一般流程;2. 掌握LoadRunner工具的基本使用方法;3. 学会分析性能测试结果并调优。
实验环境- 操作系统:Windows 10- 浏览器:Google Chrome- LoadRunner版本:12.55实验步骤步骤一:录制脚本1. 打开LoadRunner主界面,在“组织测试”中选择“录制脚本”;2. 输入脚本名称,选择协议为“Web HTTP/HTML”,点击“开始录制”按钮;3. 在弹出的浏览器中输入被测应用的URL,进入应用的登录页面;4. 按照测试用例的要求进行操作,录制脚本过程中可以对测试步骤进行注释和标记;5. 完成录制后,点击“停止录制”按钮。
步骤二:设计场景1. 在LoadRunner主界面,选择“组织测试”中的“设计场景”;2. 在“设计场景”界面中,将录制的脚本添加到“事务”中,可以设置事务的名称和模式;3. 将事务进行参数化,设置不同的参数取值,以模拟用户的不同行为;4. 可以设置事务之间的延迟时间,模拟用户的思考和操作过程。
步骤三:运行测试1. 在LoadRunner主界面,选择“执行测试”;2. 在“执行测试”界面中,选择要执行的场景,设置并发用户数、循环次数等参数;3. 启动测试并观察测试过程中的各项指标的变化情况,包括响应时间、吞吐量、错误率等;4. 完成测试后,查看测试报告,分析测试结果。
步骤四:优化调整1. 根据测试报告,可以发现系统的瓶颈和性能问题所在;2. 可以对系统进行优化调整,比如增加硬件资源、调整系统配置、修改代码逻辑等;3. 重新运行测试,对比测试结果,看优化效果。
接口测试的两种方法

接口测试的两种方法<?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>有了上述的说明书之后,测试人员可以根据文档的描述在LoadRunner书写相应的接口测试脚本。
LoadRunner中涉及到向服务器发送请求的API方法包括:web_url(),web_submit_form(),web_submit_data(),web_custom_request()。
下面介绍两种我常用的方法:方法一:使用web_submit_data()web_submit_data("insert","Action=http://116.211.23.123/SNS/Publish.htm ","Method=POST","Referer=http://116.211.23.123/SNS/Publish.htm ","Mode=HTML",ITEMDATA,"Name= SNSID ","Value=6601",ENDITEM,"Name= UserID ","Value=123",ENDITEM,"Name= CommentsTypeID ","Value=1",ENDITEM,"Name= CommentsID ","Value=456",ENDITEM,"Name= AuthorID","Value=789",ENDITEM,"Name= CommentsContent ","Value=Just for testing",ENDITEM,LAST);char str[1000];strcpy(str,"SNSID=7999&UserID=1&CommentsTypeID=1&CommentsID=1&AuthorID=1&Comme ntsContent=1");web_custom_request("Publish","Url= http://116.211.23.123/SNS/Publish.htm","Method=POST","Referer=http://116.211.23.123/SNS/Publish.htm ","Mode=HTTP",str,LAST);这也是一种写法,可以跟web_submit_data互换。
Loadrunner进行性能测试的步骤

Loadrunner进⾏性能测试的步骤Loadrunner 11是⼀款免费的性能测试⼯具,他包含三个⼤模块•使⽤VuGen:创建脚本•运⽤Controller:设置⽅案•查看Analysis:分析测试结果结合软件测试的流程可以知道使⽤LoadRunner进⾏性能测试的过程如下:•规划测试:分析应⽤程序、定义测试⽬标、⽅案实施•创建Vuser脚本•创建⽅案:⽅案包括运⾏Vuser 的计算机的列表、运⾏Vuser 脚本的列表以及在⽅案执⾏期间运⾏的指定数量的Vuser 戒Vuser 组。
•运⾏⽅案:可以指⽰多个Vuser 同时执⾏任务,以模拟服务器上的⽤户负载。
可以通过增加戒减少同时执⾏任务的Vuser 的数量杢设置负载级别。
•监视⽅案:使⽤LoadRunner 联机运⾏时、事务、系统资源、Web 服务器资源、数据库服务器资源、⽹绚延时、流媒体资源、防⽕墙服务器资源、Java 性能等、应⽤程序部署和中间件性能监视器杢监视⽅案的执⾏•分析测试结果:在⽅案执⾏期间,LoadRunner 将记录丌同负载下的应⽤程序性能。
可以使⽤LoadRunner 的图和报告杢分析应⽤程序的性能。
根据性能测试计划,搭建好测试环境后,我们使⽤lr进⾏性能测试的步骤如下:1.使⽤VuGen录制vu要执⾏的测试脚本并完善精简。
录制过程可能有点⿇烦,所以录制成功后最好先做好备份,然后使⽤其中的⼀份进⾏完善脚本的操作,其中需要完善的项⽬有:参数化、关联、检查点、集合点、思考时间、事务等。
再完善了脚本后最后⼀步对脚本进⾏精简⼯作。
(录制的脚本回放时不出错不代表脚本是正确的,单⽤户运⾏脚本不出错也不代表多⽤户运⾏时不出错)录制:设置好录制选项和运⾏时选项,录制好脚本后做好备份⼯作。
参数化:a.为什么做参数化(需要⽤户提供不同的数据才能正常运⾏,这个是从脚本⾃⾝⾓度);b.哪些地⽅需要做参数化;3.怎么做参数化。
a.如果⽤户在录制脚本过程中,填写提交了⼀些数据,返些操作都被记录到了脚本中。
loadRunner使用图解

loadRunner测试基本步骤:录制脚本→脚本调试→加载脚本、设置参数→压力测试→测试完成、生成测试报告以某系统签到签退测试脚本为例:1、录制脚本运行loadRunner,点击create/edit scripts图1.1 loadRunner主界面—录制脚本点击弹出窗口的new Vuser script…按钮图1.2 脚本选择界面弹出选择脚本协议窗口,默认为web(HTTP/HTML),签到签退功能测试的类型是web,所以直接点击ok图1.3 协议选择界面在下图中,在URL Address中输入测试入口地址,输入完成后,点击ok,开始录制图1.4 录制脚本参数设置界面图1.5 点击ok后,弹出窗口,开始录制图中红色标识部分为脚本录制的阶段。
一共有三个:vuser_init(初始化)、Action (动作)、vuser_end(结束)以签到压力测试为例,我们要测试的动作为签到,初始化为用户登录,结束可以为用户退出,也可以为用户点一下其它按钮。
输入用户名、密码,登录系统图1.7 脚本录制—初始化阶段,登录完成。
登录完成后,初始化阶段完成,经红色标识部分调整为Action,开始动作部分—签到。
调整为Action后,开始录制动作。
在门户首页点击个人事务,点击签到点击确认,完成签到动作签到动作完成后,Action录制完成。
结束动作开始。
我们以点击一下沟通中心作为整个操作的结束,沟通中心页面加载完成后,点击结束按钮,脚本录制完成。
2、脚本调试点击下图中标识的按钮,进行脚本回放图2.1 脚本回放再次点击回放按钮图2.2 脚本回放完成后,再次点击回放按钮图2.3 系统参数比较先选择下方的参数,然后点击correlate,参数比较完成图2.4 点击查看脚本按钮图2.5 脚本中记录用户名密码参数的位置图2.6 脚本中其它参数的位置找到脚本中记录用户名密码参数的位置,替换为另一个人如wujq(将脚本中zhouyun 改为wujq),找到其它需要修改的参数的位置,如empId,由于员工一天只允许签一次到,所以empId是必须修改的(wujq的员工id为7942,所以empId部分修改为7942)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
请求报文格式:
<?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>
有了上述的说明书之后,测试人员可以根据文档的描述在LoadRunner书写相应的接口测试脚本。
LoadRunner中涉及到向服务器发送请求的API方法包括:web_url(),web_submit_form(),web_s ubmit_data(),web_custom_request()。
下面介绍两种我常用的方法:
方法一:使用web_submit_data()
web_submit_data("insert",
"Action=http://116.211.23.123/SNS/Publish.htm ",
"Method=POST",
"Referer=http://116.211.23.123/SNS/Publish.htm ",
"Mode=HTML",
ITEMDATA,
"Name= SNSID ","Value=6601",ENDITEM,
"Name= UserID ","Value=123",ENDITEM,
"Name= CommentsTypeID ","Value=1",ENDITEM,
"Name= CommentsID ","Value=456",ENDITEM,
"Name= AuthorID","Value=789",ENDITEM,
"Name= CommentsContent ","Value=Just for testing",ENDITEM,
LAST);
方法二:使用web_custom_request()
char str[1000];
strcpy(str,"SNSID=7999&UserID=1&CommentsTypeID=1&CommentsID=1&AuthorID=1&CommentsContent=1 ");
web_custom_request("Publish",
"Url= http://116.211.23.123/SNS/Publish.htm",
"Method=POST",
"Referer=http://116.211.23.123/SNS/Publish.htm ",
"Mode=HTTP",
str,
LAST);
这也是一种写法,可以跟web_submit_data互换。
这种写法更利于拼接参数。
方法一适合一些xml结构的根元素下的子元素同处于根元素下面,且子元素数目较少的情况下,如果xml结构比较复杂,比如说根元素下面有多级子元素,或者xml树结构分叉较多的时候,我们可以先把x ml拼接成一个字符串然后通过web_custom_request()向服务器发送请求。
我们在做接口功能测试的时候会很注意接口的应答报文的信息,这时候我们可以通过LoadRunner 的日志信息查看或者可以通过web_reg_find()或者web_find()这样的API函数来统计接口的运行结果,推荐使用web_reg_find(),web_reg_find()和web_find()区别请大家百度一下,详细信息太多,在这里不便叙述。
因为web_reg_find()是注册型函数,所以应该放在web_submit_data()或者web_custom_request ()的前面。
如:
web_reg_find("Text=<StatusCode>0</StatusCode>",//应答报文里边的信息
"SaveCount= StatusCodeCount", //统计查询字段的信息,如果找到值为1,如果未找到值为0
LAST);
在脚本的最后我们可以对查询字段的信息进行统计
// Check result
if (atoi(lr_eval_string("{StatusCodeCount }")) > 0){ //判断如果Welcome字符串出现次//数大于0
lr_output_message("Send out the comment successfully."); }//在日志中输出Send out //the comment succes sfully
else{ //如果出现次数小于等于
lr_error_message("Send out the comment unsuccessfully."); //在日志中输出Send out //the comment succes sfully
return(0);
}
总结:用LoadRunner做接口测试无法做到把接口参数和程序分理,接口的参数可以通过参数化的方法来实现对同一个参数多个数据的测试。
参数化后的测试数据保存在此脚本的保存位置下。
方法二、通过Java + Fitnesse实现接口功能测试
什么是Fitnesse?
FitNesse是一套软件开发协作工具FitNesse是帮助大家加强软件开发过程中的协作的工具。
能够让客户、测试人员和开发人员了解软件要做成什么样,帮助建议软件最终是否达到了设计初衷。
FitNesse是一套软件测试工具从另外一个角度看,FitNesse是一个轻量级的、开源的框架,能够帮助开发团队方便的定义验收测试(Acceptance Tests),通过在web页面上简单的输出和预计输出的表格就可实现,并且可以运行这些测试以确定是否通过。
FitNesse是wiki可以很方便的创建和编辑页面FitNesse是一个web服务器不用过多的安装配置,很方便使用。
我习惯使用Eclipse集成开发工具写测试代码,用fitnesse准备接口的测试数据,由此实现接口的测试数据和测试程序的分离。
关于Fitnesse的使用大家可以参考官方网址。
Fitnesse的四种常见表格是:
ColumnFixture,ActionFixture,Decision Table,ScriptTable。
在工作中ColumnFixture用的最多。
下面的程序使用的是ColumnFixture表格。
// Java fixtures
package info.fitnesse.fixturegallery;
import fit.ColumnFixture;
public class PublishTest extends ColumnFixture {
//通过url向服务器发送请求的程序段省略
public StringSNSID; //对应列名|first part|
public StringUserID; //对应列名|second part|
private StringCommentsTypeID;
private StringAuthorID;
private StringCommentsContent;
private StringUserID;
//对参数的set和get方法省略
}
ColumnFixture表格里边的测试数据是:
//省略设置表格的存储位置信息
总结:上述两种方法都是对接口做功能测试的方法,使用LoadRunner做接口测试的时候可以不用让开发人员提供测试人员相应的UI测试页面,直接调用接口做测试,但是测试程序和数据的依赖性太强;
使用Fitnesse做接口测试的时候可以实现测试程序和数据的分离,只用点击Fitnesse界面的Test按钮就可以实现测试,测试消耗时间比使用LoadRunner做接口测试少。
以上纯属个人见解,敬请拍砖!。