Loadrunner 测试网页下载文件的脚本实例
- 格式:docx
- 大小:13.37 KB
- 文档页数:3
用LoadRunner编写socket应用的测试脚本LoadRunner提供了很好的对socket应用的支持,用户可以通过录制方法完全获得客户端发送和接收的数据,然后在录制的基础上对相应的数据进行参数化和关联等处理。
但在有些情况下(例如,客户端程序没有windows上的版本),我们就很难通过录制达成生成脚本的目标了。
但如果我们能够完全知晓服务端和客户端的交互过程,完全手工编写一个测试脚本也并不是一件特别困难的事情。
在本文中,我们以一个实际的例子说明如何根据服务端和客户端交互的过程,用LoadRunner自行编写相应的脚本。
以下是服务端工作线程的代码:DWORD WINAPI mythread( LPVOID lpParameter) //客户线程{struct My my;memcpy(&my,lpParameter,sizeof(My));printf("One client connect!\n");char str1[1024]; //接收字符串char str2[1024];int i;i=recv(my.skt,str1,sizeof(str1),0); //接收客户请求str1[i]=0;char *filename;filename=new char[255];for(int j=2;j<i;j++) //获得文件名{filename[j-2]=str1[j];}filename[i-2]=0;if (str1[0]=='S')printf("The file name : %s\n",filename);ofstream out(filename); //创文件流if (!out){printf("cannot open file.\n"); //文件是否正确打开,打开错误则退出send(my.skt,"q",1,0); //向客户发送退出信息closesocket(my.skt); //解除客户连接;return 0;}str2[0]='O';str2[1]='K';str2[2]=0;send(my.skt,str2,strlen(str2),0); //回复OK信息i=recv(my.skt,str1,sizeof(str1),0); //接收文件长度str1[4]=0;int len;len=str1[0]*1000+str1[1]*100+str1[2]*10+str1[3];printf("The File lenght is: %d Byte\n",len);for(int j=0;j<len;j++){char str[1];i=recv(my.skt,str,sizeof(str),0);//接收文件,按字节接收,接收字符串为2个字节 str[i]=0;out.put(str[0]);}out.close(); //关闭文件printf("over!One client quit!\n"); //接收文件完毕closesocket(my.skt); //解除此客户连接return 0;if (str1[0]=='R'){ifstream in(filename);if (!in){printf("cannot open file or file not exist.\n"); //文件是否正确打开,打开错误则退出 send(my.skt,"q",1,0); //向客户发送退出信息closesocket(my.skt); //解除客户连接;return 0;}char ch;int len=0;while(in.get(ch)){len++; //get file lenght}in.close();str2[0]='O';str2[1]='K';str2[2]=len/1000;str2[3]=(len%1000)/100;str2[4]=(len%100)/10;str2[5]=len%10;printf("%s",str2);send(my.skt,str2,6,0); //发OK+文件长度in.open(filename);if (!in){printf("cannot open file or file not exist.\n"); //文件是否正确打开,打开错误则退出 send(my.skt,"q",1,0); //向客户发送退出信息closesocket(my.skt); //解除客户连接;return 0;}while(in.get(ch)) //发文件{char str[1];strcpy(str,"");str[0]=ch;str[1]=0;send(my.skt,str,1,0); //发送一个字符}in.close();printf("over,One client quit!\n"); //传输文件完毕closesocket(my.skt); //解除此客户连接return 0;}printf("Bad command!\n");closesocket(my.skt);return 0;}从这段代码中可以看到,当客户端和服务端建立连接后,客户端会先向服务端发送一个请求,该请求的第一个字节是大写的“S”或是“R”,分别向服务端写文件或是从服务端读取文件。
Load Runner 使用说明一、组件:(一) VuGen:用于捕获最终用户业务流程和创建怎动化性能测试脚本。
1. 录制脚本:(1) 集合点Rendezvous(2) 验证点Check Point:文本验证点Text Check、图片验证点Image Check(3) 事务Transaction:事务开始Start Transaction、事务结束End Transaction(4) 注释与消息Comment & Message:/***/2. 增强并编辑Vuser脚本(1) 参数化:在Select next now中的参数:Sequential顺序、Random随机、Unique唯一在Update value on 参数:Each iteration每次迭代、Each occurrence每次出现、Once 一次(2) 从数据库中导入数据3. 配置动行时设置Runtime settings(运行时设置)(1) Number of Iterations:迭代次数(2) 在Preferences中的Enable image and text check在脚本中添加验证点时必须选中。
4. 在独立模式下运行Vuser脚本5. 集成Vuser脚本(二) Controller:用于组织、驱动、管理和监控负载测试。
1. 创建方案(1) 创建手动方案(2) 创建百分比模式方案(3) 创建面向目标的方案2. 计划方案(1) 开始时间(2) 方案运行设置:加压Ramp Up、持续时间Duration、减压Ramp Dowm3. 运行方案4. 监视方案(1) RuntimeGraphs(运行时图)A. Running Vusers运行时图:Running正在运行的Vuser总数、Ready完成脚本初始化部分、即可以运行的Vuser数、Finished结束运行的Vuser数,包括通过的和失败的、Error执行时发生的错误VuserB. Transaction Graphs事务监视图:Trans Response Time事务响应时间、Trans/Sec(Passed)每秒事务数(通过)、Trans/Sec(Failed/Stopped)每秒事务数(失败、停止)、Total Trans/Sec(Passed)每秒事务总数(通过)。
Laodruuner做网站压力测试录制脚本详细过程。
供各位新手学习使用,特别是想刚入门的新手。
这是我个人自己入门的体会,如有更好的资料的大侠,希望拿出来共同学习。
本人的是laodrunner8.0版本。
1、先安装laodrunner8.0.2、开始-》程序-》mercury loadrunner-》mercury loadrunner 进入到如下页面:3、选择laod testing—》create/edit scripts进入到new virtual user的页面(如果没有看到new virtual user的页面,也可以选择file—)new就可以弹出)如图页面4、在available protocols的选项中选中web(http/html),点击向右“”的前头,把web(http/html)添加到selected protocols的目录下,如下图所示5、点击“OK” 进入到如图的页面再根据下图做相应的选择如图所示:Application type 选择“intern application”;program to record默认为:microsoft internet explorer ;URL address 输入你要压力测试网址的网址;working directory输入保存脚本的路径(请记住你保存的路径,以便再次调用)6、点“OK”从LR登陆进入网站首页LR同时录制操作过程的脚本,如图:输入用户名和密码,进入OA(LR会记录用户操作的每一个步骤)如图所示:用户可以再做相关的操作,LR都会以脚本的形式记录下来。
如果要停止录制,点击如图按钮:录制过程完毕。
7、跳转到如图页面点击“△”符号(红色圈起来的),使录制的脚本运行起来,查看录制的脚本是否成功如results-test results页面:results-test results页面Failed为0;warnings为0说明脚本录制成功。
1、连接远程机器环境1.0.1.94.141(需强制登陆mstsc /v:10.1.94.141 /admin)
账号:administrator
密码:Pmoadm~1234
2、把要测试的报文拷贝到远程机器桌面上(注意报文一定要用XMLSpy编辑一次,否则测试报错xml的unicode错误)
3、打开LoadRunner软件
4、点击
点击
New script recent protocol的Web (HTTP/HTML)使用web页面进行测试
注意
Rul address:http://10.1.93.29:9081/NCIBRMProjectII/
不勾选
点击
Record
5、开始录制页面动作
点击
上载报文选择业务类型点击SOAP测试
--点击--暂停--点击--停止--脚本录制完毕
点击
6、打开script添加事物点
右击脚本insert- 选择start transaction录入事物开始点名称例子:csuw1
lr_start_transaction("csuw1");
在脚本结尾return 0;之前添加事物结束点
右击脚本insert- 选择end transaction录入事物开始点名称例子:csuw1
lr_end_transaction("csuw1", LR_AUTO);
修改思考时间为1秒(或者视情况而定)
lr_think_time(1);
一直点击下一步到finish后点击
7、
4份30秒用户300时系统崩溃出单量72311单
10分钟用户200时系统没有崩溃迹象,但响应时间维持在200毫米左右,tps平稳
.。
LoadRunner压力测试实例1 LoadRunner 概要介绍 (2)1.1 基本步骤 (2)2 安装LoadRunner 中文版 (3)2.1 系统要求 (3)2.2 安装过程 (3)3.项目背景介绍 (5)3.1 背景概述 (5)3.2压力测试用例 (6)4.使用LoadRunner进行负载/压力测试 (7)4.1录制基本的用户脚本 (7)4.2 完善测试脚本 (9)4.2.1 插入事务 (9)4.2.2 插入集合点 (10)4.2.3 插入注释 (10)4.2.4 参数化输入 (10)4.3 单机运行测试脚本 (15)5实施测试 (16)5.1 选择脚本,创建虚拟用户 (16)5.2 添加windows资源监视窗口 (18)5.3 添加windows性能计数器 (18)5.4 执行脚本 (20)5.4.1 分析结果 (21)6 分析以及监视场景 (22)6.1 Memory相关 (22)6.2 Processor相关 (25)6.3 网络吞吐量以及带宽 (28)6.4 磁盘相关 (28)6.5 Web应用程序 (29)6.6 SQL Server. 306.7 Network Delay. 327 分析实时监视图表 (32)8 经常遇到的问题 (33)8.1 VuGen的问题 (33)8.2 Controller的问题 (33)8.3 计数器的问题 (33)9.结果分析 (34)10参考文献 (38)摘要:本文通过实例讲解介绍了LoadRunner 工具的使用,介于公司的实际情况,文中主要是对工具的基本使用做了详细描述,高级运用方面除性能计数器与参数设置外其它均未涉及,待以后补充。
目的是使公司人员根据该手册便可以独立运用Loadrunner进行压力测试主题词: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. 重新运行测试,对比测试结果,看优化效果。
使用LoadRunner 编写JAVA 测试脚本以前在使用loadrunner 的过程中,基本很少关注过手动编写测试脚本,这也与手头工作有一定的关系,平时难以接触到这方面的测试类型。
虽然这期间也看过,但是感觉当时的Loadrunner对JAVA语言脚本的支持较弱,JDK还是1.1、1.2的版本,显然太不合时宜了,于是也就放弃了。
昨晚,在网上看了看Loadrunner8.1版本,已经支持到了JDK1.5版本,结合目前手头测试工作,觉得有必要细看一下。
要使得Loadrunner8.1版本能够支持JAVA语言脚本,以下几点需要注意:1.JDK的版本必须是5.0(我机器上原先装的是JDK6.0,折腾了好长一段时间,总是报ERROR loading javai.dll的错,最后没办法只能装5.0 ,Loadrunner对jdk的支持有点弱智)。
设置好java 环境。
2.Loadrunner 要支持JAVA语言必须,安装一个补丁。
(java_protocol_fixes_Feb_05 可以网上找一下,这儿没法上传)打开virtual user generator ,新建java vuser,看一下run-time settings,java environment setting 设置如下图打开java vuser的编辑界面import lrapi.lr;public class Actions{public int init() {return 0;}//end of initpublic int action() {return 0;}//end of actionpublic int end() {return 0;}//end of end}可以看到标准的java class 写法。
Actions 类包含三个方法:init、action 和end。
init 登录到服务器Vuser 已初始化(已加载)action 客户端活动Vuser 处于“正在运行”状态end 注销过程Vuser 完成或停止这时候完全可以理解loadrunner如何执行java 测试脚本代码了,在Actions 类中调用测试java类,然后在脚本中需要的地方加上loadrunner自带的一些函数方法等(比如事务函数、命令行分析函数、信息性函数、运行时函数),当然还能进行一些参数化的设置,最后在control上增加vuser数量(也就是增加线程)。
LoadRunner使用教程1. 了解LoadRunner1.1 LoadRunner 组件有哪些?LoadRunner 包含下列组件:➤虚拟用户生成器用于捕获最终用户业务流程和创建自动性能测试脚本(也称为虚拟用户脚本)。
➤Controller 用于组织、驱动、管理和监控负载测试。
➤负载生成器用于通过运行虚拟用户生成负载。
➤Analysis 有助于您查看、分析和比较性能结果。
➤Launcher 为访问所有LoadRunner 组件的统一界面。
1.2 了解LoadRunner 术语场景(方案)场景是一种文件,用于根据性能要求定义在每一个测试会话运行期间发生的事件。
Vuser在场景中,LoadRunner 用虚拟用户或Vuser 代替实际用户。
Vuser 模拟实际用户的操作来使用应用程序。
一个场景可以包含几十几百甚至几千个Vuser。
Vuser 脚本Vuser 脚本用于描述Vuser 在场景中执行的操作。
事务要度量服务器的性能,需要定义事务。
事务表示要度量的最终用户业务流程。
1.3 负载测试流程负载测试通常由六个阶段组成:计划、脚本创建、场景定义、场景执行、场景监控和结果分析。
规划测试:定义性能测试要求,例如并发用户的数量、典型业务流程和所需响应时间。
创建Vuser 脚本:将最终用户活动捕获到自动脚本中。
定义方案:使用LoadRunner Controller 设置负载测试环境。
运行方案:通过LoadRunner Controller 驱动、管理负载测试。
监视方案:监控负载测试。
分析结果:使用LoadRunner Analysis 创建图和报告并评估性能。
2. LoadRunner安装及注意事项2.1 需要下载的文件及下载源LoadRunner v8.1。
需要下载的文件包括:➤LoadRunner 8.1 ISO镜像,文件名为LoadRunner.V8.1.iso。
➤破解方法及所需文件,文件名为LoadRunner破解方法。
一、录制脚本1. 翻开2. 点击编辑脚本3. 点击按钮新建脚本4. 弹出对话框,选着web〔/html〕5. 输入网址,点击ok6. 录制脚本,录制结束后,点击一下按钮停止录制7. 录制成功后,生成脚本8. 点击如下按钮回放脚本9. 点此按钮,可新增action10. 点此按钮可以进行录制和回放设置11. 弹出的参数话界面一般回放设置下这里就好12. 点击图中图表设置参数化13. 弹出的设置界面,主要设置红色区域的几个地方14. 下列图按钮为脚本调试15. 下列图按钮为设置时间的其实点和结束点的按钮16. 下列图两个按钮分别为与hp质量管理工具ALM连接按钮和创立场景按钮17.插入事件,分别表示时间的开始和结束事件插入成功:18. 设置集合点二、创立场景1.在vugen中点击图中按钮创立场景2.弹出编辑框,设置场景,设置完成后点击ok第一个是目标场景第二个是手动场景其中手动场景可以设置加载虚拟用户数3.双击这里选着加压主机4.选择主机ip,和系统5.点击ok关闭对话框图中红色区域是选着场景执行方式:模拟真是环境还是基于时间表模拟6.下列图中:1)Schedule by选项表示加载方式,基于脚本还是基于组2)Run mode表示加载模式:分别表示模拟真实情况和还是基于场景7.双击下列图红色区域,可选着加压力度8.双击红色区域,可设置压力下完运行时间9.双击下面红色的内容,可以选着虚拟用户停止的模式10.弹出设置选项框,可以选着停止的方式全部一下停止每多少时间停止多少个的方式停止11.点击run,来到执行界面12.在执行界面点击start Scenario,开始跑场景13.下列图为执行过程中14.场景跑完后显示如图界面:其中右边红色区域是运行过程中监控效劳器的资源占用率等等的一些信息,在左边还可以添加或查看其他的一些图标15.点击下面按钮也能添加加压主机16.经15后,弹出选项框,点击add可以输入主机信息17.设置ip欺骗三、结果分析1.点击下面按钮,进入分析结果界面2.分析界面如下:3.点击这里的图表可以查看各结果的,然后对结果进行分析4.按照如下操作可以增加新的图表5.右键图表选着合并图表,可以合并分析6.合并后的图表具体实例教你如何做LoadRunner结果分析LoadRunner 最重要也是最难理解的地方--测试结果的分析.其余的录制和加压测试等设置对于我们来讲通过几次操作就可以轻松掌握了.针对Results Analysis 我用图片加文字做了一个例子,希望通过例子能给大家更多的帮助.这个例子主要讲述的是多个用户同时接管任务,测试系统的响应能力,确定系统瓶颈所在.客户要求响应时间是1 个人接管的时间在5S 内.2.系统资源:2.1 硬件环境:硬盘:100G网络环境:100Mbps2.2 软件环境:操作系统:英文windowsXP效劳器:tomcat 效劳系统结构:B/S 结构下面要讲述的例子添加了我们平常测试中最常用到的一些资源参数.另外有些特殊的资源暂时在这里不做讲解了.我会在以后相继补充进来。
200个不同用户登陆结果分析1、L oadrunner测试结果分析如下:Summary(场景摘要)结果及分析如下:Secenario name 场景名称Results in session 场景运行的结果目录Duration 场景运行时间Maximum running vusers(场景最大用户数)Total throughput (bytes)(总带宽流量)Average throughput (bytes/second)(平均每秒宽带流量)Total hit(总点击数)Average hits per second(平均每秒点击数)图1-1此次测试我用了200个用户, 163个passed, 所以实际参与测试的虚拟用户总共有163个。
其中, 总的吞吐量为535484969bytes, 平均吞吐量为1459087bytes, 总的请求量为12321, 平均每秒请求量为33.572, 错误共有37个。
从该图可以看出, 该网页在用户登陆方面存在问题。
图1-2图1-3(注: Action.c(92): Error -27796: Failed to connect to server "61.177.55.188:8080": [10060] Connection timed out.Action.c(104).Erro.-27727.Ste.downloa.timeou.(12.seconds.ha.expire.whe.downloadin.reso urce(s).Se.th."Ste.Timeou.cause.b.resource.i..warning.Run-Tim.Settin.t.Yes/N.t.hav.thi.mes sag.a..warning/error.respectively.Error: missing newline in D:\Program Files\HP\LoadRunner\tutorial\账户登陆1\Name.dat)Running Vusers结果及分析如下:图2-1通过上面图形结果可知, 在刚开始虚拟用户为100个, 11s左右时达到200个, 从1min45s 后逐渐减少, 6min7s左右时用户全部退出访问。
Loadrunner 测试网页下载文件的脚本实例
Action()
{
int flen; //定义一个整型变量保存获得文件的大小
long filedes; //保存文件句柄
char file[256]="\0"; //保存文件路径及文件名
/ ar chNumber
web_set_max_html_param_len("99999999");//设置页面接收最大的字节数,该设置应大于下载文件的大小
web_concurrent_start(NULL);
web_reg_save_param("filecontent",
"LB=",
"RB=",
"Search=BODY",
LAST);
//使用关联函数获取下载文件的内容,在这里不定义左右边界,获得服务器响应的所有内容
//web_reg_save_param("file",
//"LB=filename=\"",
// "RB=\"",
// "Search=all",
// LAST);
//使用关联函数在服务器响应的头文件中获取下载文件名
lr_rendezvous("xiazai");
web_url("llmusic.zip",
"URL=http://58.250.87.4/lltvweb/epgzip/1_wht/llmusic.zip", "Resource=1",
"RecContentType=application/zip",
"Referer=",
"Snapshot=t7.inf",
LAST);
//发出下载请求
web_concurrent_end(NULL);
strcat(file,"f:\\"); //将"c:\\"这个路径保存到file中
strcat(file,lr_eval_string("llmusic.zip"));//将获得的文件名拼接在file这个变量字符串之后
flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE); //获得文件大小
if(flen > 0)
{
if((filedes = fopen(file, "wb")) == NULL)
{
lr_output_message("Open File Failed!",
lr_eval_string("{filecontent}"));
return -1;
}
fwrite( lr_eval_string("{filecontent}"),flen,1,filedes );
fclose( filedes );
}
return 0; }。