loadrunner经典面试题.doc_第1页
loadrunner经典面试题.doc_第2页
loadrunner经典面试题.doc_第3页
loadrunner经典面试题.doc_第4页
loadrunner经典面试题.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

loadrunner经典面试题在LoadRunner中为什么要设置思考时间和pacing答: 录制时记录的是客户端和服务端的交互,如果要精确模拟 用户的行为,那么客户操作客户端时花费了很多时间要怎么模拟呢?录入 填写提交的内容,从列表中下拉搜索选择特定的值等,这时LOADRUNNER 不会记录用户 的客户端操作,而是记录了用户这段时间,成为思考时间(Think-time),因为用户的这些客户端操作不会影响服务端,只是让服务器端在这段时间内没有请求而已。,所以加入思考时间就能模拟出熟练的或者生疏的用户操作,接近实际对于服务端的压力。 Vuser 思考时间模拟实际用户在不同操作之间等待的时间。例如,当用户收到来自服务器的数据时,可能要等待几秒钟查看数据,然后再做出响应。这种延迟就称为“思考时间”。VuGen 使用 lr_think_time 函数将思考时间值录制到 Vuser 脚本中。以下录制的函 数指明用户等待了 8 秒钟才执行下一个操作: lr_think_time(8); 当您运行了 Vuser 脚本并且 Vuser 遇到了上述 lr_think_time 语句时,默认情况下,Vuser 将等待 8 秒钟后再执行下一个操作。可以使用思考时间运行时设置来影响运行脚本时 Vuser 使用录制思考时间的方式。如何理解TPS?答:TPS主要还是体现服务器对当前录制的事务的处理速度快慢。TPS高并不代表性能好。TPS 是Transactions Per Second 的 缩 写,也就是事务数/ 秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息来估计得分。客户机使用加权协函数平均方法来计算客户机的得分,试软件就是利用客户机的这些信息使用加权协函 数平均方法来计算服务器端的整体TPS得分。如何使用loadrunner批量添加树型结构数据/*此段代码为:添加”树状”节点数据,代码源于*项目,此码仅添加数据到第三层。*/*前置条件:用户已登录并具有操作权限*/*思路:新增一级节点获取一级ID添加二级节点展开一级节点获取二级ID添加三级数据*/*说明:添加一级节点逐个读取一级节点ID读到一个一级节点就给它添加二级节点二级节点添加完一次就读一次ID读一次二级节点直接添加三级节点*/*修改”树状”节点数据的代码类似,Submit修改时,要多建一个参数TreeCode*/int i,j,k,p; /循环变量int No1,No2,No3; /分别保存一、二、三级节点的个数int M1,M2,M3; /分别定义一、二级节点的数量,三级节点不保存数据,故未限制大小char *MyID190,*MyID290,m40; /MyID1用于储存所有一级节点数据,m为临时数组变量/* MyID的长度也大于M的长度;m的长度要大于ID的长度+1 */M1=30;M2=20;M3=10;/*RootID名称需要按模块修改,Control里需要重新参数化*/lr_save_string (“FindRootIDinWebResource”,”RootID”);/根节点的ID,修改此处即可使用lr_output_message (“当前根节点的ID号为:%s”,lr_eval_string (“RootID”);for (i=1;iM1) No1=M1;/让No1=M1for (i=1;i=No1;i+) /将一级节点的ID写入MyID1中sprintf(m,IDS_%d,i); /生成动态字符串IDS_i,存在变量m中*核心步骤MyID1i-1=lr_eval_string (m); /读取IDS_i参数对应的值,保存到MyID1中*核心步骤lr_output_message (一级节点第%d共%d,m=%s即MyID1%d=,%s,i,No1,m,i-1,MyID1i-1);lr_save_string (MyID1i-1,SubID);/将MyID1转换为参数SubID以便使用for (j=1;jM2) No2=M2;/让No2=M2for (k=1;k=No2;k+) /将二级节点的ID写入MyID2中sprintf(m,”IDS2_%d”,k); /生成动态字符串IDS2_i,存在变量m中*核心步骤MyID2k-1=lr_eval_string (m); /读取IDS2_i参数对应的值,保存到MyID2中*核心步骤lr_output_message (“开始处理二级节点:第%d共%d,m=%s即MyID1%d=,%s”,k,No2,m,k-1,MyID2k-1);lr_save_string (MyID2k-1,”SubID2);/将MyID1转换为参数SubID以便使用lr_save_int(k,”N”);for (p=1;p=M3;p+) /添加子节点lr_save_int(p,”P”);/#添加三级节点web_submit_data(“RootIDSubIDP”);lr_output_message (“当前状态一级节点%d,二级节点%d:已添加%d个三级节点”,i,k,M3);loadrunner对应用程序性能分析的总结一个应用程序是由很多个组件组成的,整个应用程序的性能好不好需要从整体入手去分析。打开analysis页面,将左下角的display only graphs containing data 置为不选,然后选中web page breakdown ,点击“open graph”添加需要分析的功能项。web page breakdown中显示的是每个页面的下载时间。点选左下角web page breakdown 展开,可以看到每个页中包括的css 样式表,js 脚本,jsp 页面等所有的属性。在select page to breakdown 中选择页面。选中后,在选择栏下方看到属于它的组件。哪一行的事物占据的时间较长,那么它的消耗时间点就在这里,分析问题也就要从这里入手。对相应的组件所标注的颜色分析如下:1、dns resolution显示使用最近的dns服务器,将dns解析为ip地址所需要的时间,“dns查找”度量是指示dns解析问题或dns服务器问题的一个很好的指示器。2、connection显示与包含指定的URL的web服务器建立初始连接所需要的时间。连接度量是一个很好的网络问题指示器。另外,他还能判断服务器是否对请求作出响应。3、first buffer显示从初始HTTP请求(通常为get) 到成功收到来自web服务器的第一次缓冲时为止所经过的时间。第一次缓冲度量可以判断是否存在web服务器延迟或者网络滞后。注意点:由于缓冲区最大为8k,因此第一次缓冲时间可能也就是完成元素下载所需要的时间。4、ssl handshaking显示建立ssl连接(包括客户端请求,服务器请求,客户端公用密钥传输,服务器证书传输及其它部分可选阶段)所用的时间。自此点之后,客户端及服务器之间所有的通信都将被加密。注意点:ssl握手度量仅适用用https通信。5、receive显示从服务器收到最后一个字节,并完成下载之前所经过的时间。接收度量可以查看网络质量,查看用来计算接收速率的时间/大小比率。6、ftp authentication显示验证客户端所用的时间。如果使用ftp,则服务器在开始处理客户端命令之前,必须验证该客户端。、此功能只是用与使用ftp通信。7、client显示因浏览器思考时间或其它与客户端有关的延迟而使客户机上的请求发生延迟时,所经过的平均时间。8、error显示从发出HTTP请求到返回错误消息(仅限于HTTP错误)期间所经过的平均时间。分析以上指标,结合系统资源监控指标,会比较准确快速的定位问题。从而对系统的性能及随后的调优提供针对性的意见。使用LoadRunner进行性能测试的一般步骤是什么? 确定需要进行测试的业务或交易,通过手工操作和Vuser Generator的录制功能来记录并生成虚拟用户脚本。 手工修改虚拟用户脚本,确定脚本能够成功回放。 在Controller中对场景进行配置后,启动测试。在测试过程中,Controller控制Load Generator对被测系统的加压方式和行为。 Controller同时负责搜集被测系统各个环节的性能数据。各个Loaded Generator会记录最终用户响应时间和脚本执行的日志。 压力运行结束后,Loaded Generaror将数据传输到Controller中,有Controller对测试结果进行汇总。 借助数据分析工具Analysis对性能测试数据进行分析,确定瓶颈和调优方法。 对系统进行针对性的调优,重复进行压力测试,确定性能是否有所提高。loadrunner中的设置线程和进程的区别loadrunner中,在进行运行设置中有一项选择,是按进程运行Vuser或按线程运行Vuser?下面进行分别来讲:1.按进程运行Vuser:Controller将使用驱动程序mdrv运行Vuser。如果按进程方式运行每个Vuser,则对于每个Vuser实例, 都将启动一个mdrv进程。如果设置了10个Vuser,则在任务管理器中出现10个mdrv进程。多个mdrv进程肯定会占用大量内存及其他系统资源, 这就限制了可以在任一负载生成器上运行的Vuser的数量。2.按线程运行Vuser:及设置了10个Vuser,其只会调用一个驱动程序mdrv.而每个Vuser都按线程运行,这些线程Vuser将共享父进程的内存段。这就节省了大量内存控件,从而可以在一个负载生成器上运行更多的Vuser。任何选择都是有两面性的。选择线程方式运行Vuser会带来一些安全问题。因为线程的资源是从进程资源中分配出来的,因此同一个进程中的多个线程会有共享 的内存空间,这样可能会引起多个线程的同步问题,调度不好,就会出问题,不如A线程要用的资源就必须等待B线程释放,而B也在等待其他资源释放才能继续。 这就会出现这样的问题:同一个测试场景,用线程并发就会超时失败或报错,而用进程并发就没错。虽然会有区别,但两种方式的运行都会给服务端造成的压力是一样的。如何用loadrunner录制sql server测试一个sql语句或存储过程的执行本次通过loadRunner录制SQL Server介绍一下如何测试一个sql语句或存储过程的执行性能。主要分如下几个步骤完成:第一步、测试准备第二步、配置ODBC数据源第三步、录制SQL语句在Sql Server查询分析器中的运行过程第四步、优化录制脚本,设置事务第五步、改变查询数量级查看SQL语句的性能第六步、在controller中运行脚本下面开始具体的介绍:测试准备阶段我们首先要确认测试数据库服务器:我们可以在本地安装SQL SERVER数据库服务端及客户端,也可以确定一台装好的SQL SERVER服务器。接下来,准备测试数据:对数据库测试时我们要考虑的不是SQL语句是否能够正确执行,而是在某数量级的情况下SQL语句的执行效率及数据库服务的运行情 况,所以我们分别准备不同数量级的测试数据,即根据实际的业务情况预估数据库中的记录数,在本次讲解中我们不考虑业务逻辑也不考虑数据表之间的关系,我们 只建立一张表,并向此表中加入不同数量级的数据,如分别加入1000条、10000条、50000条、100000条数据查看某SQL语句的执行效率。在查询分析器中运行如下脚本:-创建测试数据库create database loadrunner_test;use loadrunner_test-创建测试数据表create table test_table(username varchar(50),sex int,age int,address varchar(100),post int)-通过一段程序插入不同数量级的记录,具体的语法在这里就不多说了declare i intset i=0while i1000 /循环1000次,可以根据测试数据情况改变插入条数beginBEGIN TRAN T1insert into test_table (username,sex,age,address,post) values (户瑞海+cast(i as varchar),i-1,i+1,北京市和平里+cast(i as varchar)+号,123456);IF ERROR 0beginrollback;select errorendelsebegincommit;set i = i+1endend好了,执行完上述语句后,建立的数据表中已经有1000条记录了,下面进行第二步的操作,配置ODBC数据源,为了能让loadrunner能够通过ODBC协议连接到我们建立的SQL SERVER数据路,我们需要在本机上建立ODBC数据源,建立方法如下:控制面板性能和维护管理工具数据源(ODBC)-添加,在列表中选择SQL SERVER点击完成,根据向导输入数据源名称,链接的服务器,下一步,输入链接数据库的用户名和密码,更改链接的数据库,完成ODBC的配置,如果配置 正确的话,在最后一步点击“测试数据源”,会弹出测试成功的提示。配置好ODBC数据源后就要录制SQL语句在查询分析器中的执行过程了:1、 打开loadrunner,选择ODBC协议2、 在start recording中的application type 选择win32 application;program to record中录入SQL SERVER查询分析器的路径“.安装目录isqlw.exe”3、 开始录制,首先通过查询分析器登录SQL SERVER,在打开的查询分析器窗口中输入要测试的SQL语句,如“select * from test_table;”4、 在查询分析器中执行该语句,执行完成后,结束录制好了,现在就可以看到loadrunner生成的脚本了(由于脚本过长,在这里就不粘贴了,有需要的朋友可以加我QQ,我把脚本发给你们),通过这些语句,我们可以看出,登录数据库的过程、执行SQL语句的过程。接下来,我们来优化脚本,我们分别为数据库登录部分和执行SQL语句的部分加一个事物,在增加一个double的变量获取事务执行时间,简单内容如下:Action() double trans_time; /定义一个double型变量用来保存事务执行时间lr_start_transaction(sqserver_login); /设置登录事务的开始lrd_init(&InitInfo, DBTypeVersion); /初始化链接(下面的都是loadrunner生成的脚本了,大家可以通过帮助查到每个函数的意思)lrd_open_context(&Ctx1, LRD_DBTYPE_ODBC, 0, 0, 0);lrd_db_option(Ctx1, OT_ODBC_OV_ODBC3, 0, 0);lrd_alloc_connection(&Con1, LRD_DBTYPE_ODBC, Ctx1, 0 /*Unused*/, 0);trans_time=lr_get_transaction_duration( sqserver_login ); /获得登录数据库的时间lr_output_message(sqserver_login事务耗时 %f 秒, trans_time); /输出该时间lr_end_transaction(sqserver_login, LR_AUTO); /结束登录事务lr_start_transaction(start_select);/开始查询事务lrd_cancel(0, Csr2, 0 /*Unused*/, 0);lrd_stmt(Csr2, select * from test_table;rn, -1, 1, 0 /*None*/, 0);/此句为执行的SQLlrd_bind_cols(Csr2, BCInfo_D42, 0);lrd_fetch(Csr2, -10, 1, 0, PrintRow24, 0);.trans_time=lr_get_transaction_duration( start_select ); /获得该SQL的执行时间lr_output_message(start_select事务耗时 %f 秒, trans_time); /输出该时间lr_end_transaction(start_select, LR_AUTO); /结束查询事务优化后,在执行上述脚本后,就可以得到登录到数据库的时间及运行select * from test_table这条语句的时间了,当然我们也可以根据实际情况对该条语句进行参数化,可以测试多条语句的执行时间,也可以将该语句改为调用存储过程 的语句来测试存储过程的运行时间。接下来把该脚本在controller中运行,设置虚拟用户数,设置集合点,这些操作我就不说了,但是值得注意的是,没有Mercury 授权的SQL SERVER用户license,在运行该脚本时回报错,提示“You do not have a license for this Vuser type.Please contact Mercury Interactive to renew your license.”我们公司穷啊买不起loadrunner,所以我也无法继续试验,希望有license朋友们监控一下运行结果!最起码在VUGen中运行该脚本我们可以得到任意一个SQL语句及存储过程的执行时间,如果我们测试的B/S结构的程序如何完全卸载LoadRunner?1.首先保证所有LoadRunner的相关进程(包括Controller、VuGen、Analysis和Agent Process)全部关闭。2.备份好LoadRunner安装目录下测试脚本,一般存放在LoadRunner安装目录下的“scrpts”子目录里。3.在控制面板的“删除与添加程序”中运行LoadRunner的卸载程序。如果弹出提示信息关于共享文件的,都选择全部删除。4.卸载向导完成后,重新启动电脑。完成整个LoadRunner卸载过程。5.删除整个LoadRunner目录。(包括Agent Process)6.在操作中查找下列文件,并且删除它们(如果有)1) wlrun.*2) vugen.*7.运行注册表程序(开始 运行 regedit)8.删除下列键值:如果只安装了MI公司的LoadRunner这一个产品,请删除:HKEY_LOCAL_MACHINESOFTWAREMercury Interactive.HKEY_CURRENT_USERSOFTWAREMercury Interactive.否则请删除:HKEY_LOCAL_MACHINESOFTWAREMercury InteractiveLoadRunner.HKEY_CURRENT_USERSOFTWAREMercury InteractiveLoadRunner.9.最后清空回收站完成了以上操作就可以正常的重新安装LoadRunner。安装LoadRunner时最好关闭所有的杀毒程序。loadrunner如何遍历一个页面中的url并进行访问?代码如下:Action()char temp64;int num = 0 ;int i = 0 ;char *str ;/ char *temp ;/获取函数,是一个数组web_reg_save_param(“UrlList”,“LB/ALNUMIC=a href=”,“RB=”,“ORD=all”,LAST);web_url(“localhost”,“URL=”,LAST);/获取数据的长度str = lr_eval_string(“UrlList_count”);lr_error_message(“%s”,str);num = atoi(str);for(i=1;iRecording Options进入录制的设置窗体2.Recording标签页:选用哪种录制方式3.Browser标签页:浏览器的选择4.Recording Proxy 标签页:浏览器上的代理设置5.Advanced 标签页:可以设置录制时的think time,支持的字符集标准等6.Correlation标签页:手工设置关联,通过关联可在测试执行过程中保存动态值。使用这些设置可以配置 VuGen 在录制过程中执行的自动关联的程度。LoadRunner如何选择协议?很多人使用loadrunner录制脚本时都得不到理想的结果,出现这种情况大多是由于录制脚本时选择了不当的协议。那我们在录制脚本前如何选择合适的通信协议呢?用单协议还是双协议?LoadRunner属于应用在客户端的测试工具,在客户端模拟大量并发用户去访问服务器,从而达到给服务器施加压力的目的。所以说LoadRunner模拟的就是客户端,其脚本代表的是客户端用户所进行的业务操作,即只要脚本能表示用户的业务操作就可以。1.LR支持多种协议,请大家一定要注意,这个地方协议指的是你的Client端通过什么协议访问的Server,Client一般是面向最终使用者 的,Server是第一层Server端,因为现在的体系架构中经常Server层也分多个层次,什么应用层,什么数据层等等,LR只管Client如何 访问第一层Server.2.特别要注意某些应用,例如一个Web系统,这个系统是通过ActiveX控件来访问后台的,IE只是一个容器,而ActiveX控件访问后台是通过 COM/DCOM协议的,这种情况就不能使用Web协议,否则你什么也录制不到,所以,LR工程师一定要了解应用程序的架构和使用的技术。 3. 象HTTPS,一般来讲一定要选择多协议,但在选择具体协议的时候一定只选Web协议,这时候才能作那个端口映射。n通常协议选择1.对于常见的B/S系统,选择Web(Http/Html)2.测一个C/S系统,根据C/S结构所用到的后台数据库来选择不同的协议,如果后台数据库是sybase,则采用sybaseCTlib协议,如果是 SQL server,则使用MS SQL server的协议,至于oracle 数据库系统,当然就使用Oracle 2-tier协议。3.对于没有数据库的C/S(ftp,smtp)这些可以选择Windwos Sockets协议。4.至于其他的ERP,EJB(需要ejbdetector.jar),选择相应的协议即可.5. 一般可以使用Java vuser协议录制由java编写的C/S模式的软件, ,当其他协议都没有用时,只能使用winsocket协议Loadrunner支持哪些常用协议?? Web(HTTP/HTML)? Sockets? .net 协议? web services? 常用数据库协议(ODBC,ORACLE,SQLSERVER 等)? 邮件(SMTP、pop3)? 其它协议性能测试的类型都有哪些?负载测试(Load Test)通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。压力测试(Stress Test)通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能够提供的最大服务级别的测试。压力测试是一种特定类型的负载测试。疲劳强度测试通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。疲劳强度测试可以反映出系统的性能问题,例如内存泄漏等。大容量测试(Volume Test)对特定存储、传输、统计、查询业务的测试。并发用户数是什么?跟在线用户数什么关系?并发主要是针对服务器而言,是否并发的关键是看用户操作是否对服务器产生了影响。因此,并发用户数量的正确理解为:在同一时刻与服务器进行了交互的在线用户数量,这种交互既可以是单向的传输数据,也可以是双向的传送数据。? 并发用户数是指系统运行期间同一时刻进行业务操作的用户数量。? 该数量取决于用户操作习惯、业务操作间隔和单笔交易的响应时间。? 使用频率较低的应用系统并发用户数一般为在线用户数的5%左右。? 使用频率较高的应用系统并发用户数一般为主线用户数的10%左右Loadrunner常用的分析点都有哪些?Vusers:提供了生产负载的虚拟用户运行状态的相关信息,可以帮助我们了解负载生成的结果。Rendezvous(负载过程中集合点下的虚拟用户):当设置集合点后会生成相关数据,反映了随着时间的推移各个时间点上并发用户的数目,方便我们了解并发用户的变化情况。Errors(错误统计):通过错误信息可以了解错误产生的时间和错误类型,方便定位产生错误的原因。Errors per Second(每秒错误):了解在每个时间点上错误产生的数目,数值越小越好。通过统计数据可以了解错误随负载的变化情况,定为何时系统在负载下开始不稳定甚至出错。Average Transaction Response Time(平均事务响应时间):反映随着时间的变化事务响应时间的变化情况,时间越小说明处理的速度越快。如果和用户负载生成图合并,就可以发现用户负载增加对系统事务响应时间的影响规律。Transactions per Second(每秒事务):TPS吞吐量,反映了系统在同一时间内能处理事务的最大能力,这个数据越高,说明系统处理能力越强。Transactions Summary(事务概要说明)统计事物的Pass数和Fail数,了解负载的事务完成情况。通过的事务数越多,说明系统的处理能力越强;失败的事务数越小说明系统越可靠。Transaction performance Summary(事务性能概要):事务的平均时间、最大时间、最小时间柱状图,方便分析事务响应时间的情况。柱状图的落差越小说明响应时间的波动小,如果落差很大,说明系统不够稳定。Transaction Response Time Under Load(用户负载下事务响应时间):负载用户增长的过程中响应时间的变化情况,该图的线条越平稳,说明系统越稳定。Transactions Response time(事务响应时间百分比):不同百分比下的事务响应时间范围,可以了解有多少比例的事物发生在某个时间内,也可以发现响应时间的分布规律,数据越平稳说明响应时间变化越小。Transaction Response Time(各时间段上的事务数):每个时间段上的事务个数,响应时间较小的分类下的是无数越多越好。Hits per Second(每秒点击):当前负载重对系统所产生的点击量记录,每一次点击相当于对服务器发出了一次请求,数据越大越好。Throughput(吞吐量):系统负载下所使用的带宽,该数据越小说明系统的带宽依赖就越小,通过这个数据可以确定是不是网络出现了瓶颈。HTTP Responses per Second(每秒HTTP响应):每秒服务器返回各种状态的数目,一般和每秒点击量相同。点击量是客户端发出的请求数,而HTTP响应数是服务器返回的响应数。如果服务器的响应数小于点击量,那么说明服务器无法应答超出负载的连接请求。Connections per Second(每秒连接):统计终端的连接和新建的连接数,方便了解每秒对服务器产生连接的数量。同时连接数越多,说明服务器的连接池越大,当连接数随着负载上升而停止时,说明系统的连接池已满,通常这时候服务器会返回504错误。需要修改服务器的最大连接来解决该问题。LoadRunner不执行检查方法怎么解决?在录制Web协议脚本中添加了检查方法Web_find,但是在脚本回放的过程中并没有执行。错误现象:在脚本中插入函数Web_find,在脚本中设置文本以及图像的检查点,但是在回放过程中并没有对设置的检查点进行检查,即Web_find失效。错误分析:由于检查功能会消耗一定的资源,因此LoadRunner默认关闭了对文本以及图像的检查,所以在设置检查点后,需要开启检查功能。解决办法:打开运行环境设置对话框进行设置,在“Run-time Settings”的“Internet Protocol”选项里的“Perference”中勾选“Check”下的“Enable Image and text check”选项。LoadRunner请求无法找到如何解决?在录制Web协议脚本回放脚本的过程中,会出现请求无法找到的现象,而导致脚本运行停止。错误现象:Action.c(41): Error -27979: Requested form. not found MsgId: MERR-27979Action.c(41): web_submit_form. highest severity level was “ERROR”,0 body bytes, 0 header bytes MsgId: MMSG-27178”这时在tree view中看不到此组件的相关URL。错误分析:所选择的录制脚本模式不正确,通常情况下,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用HTTPS安全协议,这 时则使用“URL-based script”模式进行录制。解决办法:打开录制选项配置对话框进行设置,在“Recording Options”的“Internet Protocol”选项里的“Recording”中选择“Recording Level”为“HTML-based script”,单击“HTML Advanced”,选择“Script. Type”为“A script. containing explicit”。然后再选择使用“URL-based script”模式来录制脚本。LoadRunner HTTP服务器状态代码都有哪些?如何解决?在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页面-404错误提示、-500错误提示。错误现象1:-404 Not Found服务器没有找到与请求URI相符的资源,但还可以继续运行直到结束。错误分析:此处与请求URI相符的资源在录制脚本时已经被提交过一次,回放时不可再重复提交同样的资源,而需要更改提交资源的内容,每次回放一次脚本都要改变提交的数据,保证模拟实际环境,造成一定的负载压力。解决办法:在出现错误的位置进行脚本关联,在必要时插入相应的函数。错误现象2:-500 Internal Server Error服务器内部错误,脚本运行停止。错误分析:服务器碰到了意外情况,使其无法继续回应请求。解决办法:出现此错误是致命的,说明问题很严重,需要从问题的出现位置进行检查,此时需要此程序的开发人员配合来解决,而且产生的原因根据实际情况来定,测试人员无法单独解决问题,而且应该尽快解决,以便于后面的测试。这两天测试并发修改采购收货时,录制回放正确,运行脚本,集合点3个并发时,却老是出错如下:Action.c(30): Error -26612: HTTP Status-Code=500 (Internal Server Error) for 8:88/Purchase/stockin_action.asp?Oper=Edt解决过程:按Help提示在浏览器输入原地址,发现提示“请重新登陆系统”。被此误导,偶以为是Session ID、或Cookie失效,于是尝试找关联,花了N多时间。可是脚本里确实不存在需要关联的地方呀,系统默认关联了。与程序员沟通,证实此过程不会涉及到Session ID 或Cookie。那为什么?因为集合点下一站就是修改的提交操作,于是查找web_submit_data定位查找Log文档注意点:怎么找log文件ControllerResultsResults Settings 查找本次log文件保存目录到该目录下查找log文件夹打开惊喜的发现其中竟然有所有Vuser 的运行log。打开Error 查找报错的Vus

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论