请解释一下如何使用LR录制web脚本?
利用Virtual User Generator录制测试脚本,录制步骤:
1、选择合适的协议-Web(Http/Html),
2、设置录制选项(HTML-based Script/URL-based Script)
3、开始录制
脚本增强是做哪些工作?
插入事务
插入集合点
插入检查点
插入参数化
插入特殊函
树视图和脚本视图各有什么优点?
Tree View的好处是使用户更方便地修改脚本,Tree View支持拖拽,用户可以把任意一个节点拖拽到他想要的地方,从而达到修改脚本的目的。用户可以右键单击节点,进行修改/删除当前函数参数属性,增加函数等操作,通过Tree View能够增加LoadRunner提供的部分常用通用函数和协议相关函数。
Script View:在Script View中能够看到一行行的API函数,通过Script View向脚本中增加一些其他API函数,对会编程的人来说很方便。
不同的应用类型一般使用什么类型的数据库?
互联网产品:mysql
金融类产品:oracle,DB2
企业ERP:sqlserver
APP:SqlLite
LoadRunner如何选择协议?
通常协议选择
补充:
loadrunner中的unique会使用在哪种性能测试场景需求中使用?
参数的组合,结合实际情况举例。
loadrunner脚本出现乱码怎么解决?
在Virtual User Gen的Tools->Recoding Options -> Advanced -> Support charset -> UTF-8
LoadRunner不执行检查方法怎么解决?
在录制Web协议脚本中添加了检查方法Web_reg_find,但是在脚本回放的过程中并没有执行。
错误现象:在脚本中插入函数Web_reg_find,在脚本中设置文本以及图像的检查点,但是在回放过程中并没有对设置的检查点进行检查,即Web_reg_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-27979]
Action.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”模式来录制脚本。
你在LR中如何编写自定义函数?请给出一些你在以前进行的项目中编写的函数。
在编写用户自定义函数之前,需要首先为函数创建外部库(DLL)文件,将这些库文件放在bin目录下,一旦库文件已经被添加并且将用户自定义函数作为参数,函数应该为以下格式:__declspec (dllexport) char* (char*, char*)
你在哪里设置自动关联选项?
两地方可以设置
1.设置允许录制时进行自动关联,可以自定义规则
2.录制完成后,vuser-scan action for correlations
哪个函数是用来截取虚拟用户脚本中的动态值?(手工关联)
Web_reg_save_param
你在VUGen中何时选择关闭日志?何时选择标准和扩展日志?
Run-time settings -> log下设置
标准日志:脚本执行过程中,将执行及错误信息发送到日志文件中
扩展日志:可以将详细的脚本执行信息输出到日志文件中,可以选择以下三种扩展日志信息:
参数替换:脚本运行过程中,可以将参数及当前参数值输出到日志文件中
服务器返回的数据:将服务器返回给客户端的数据输出到日志文件中
高级跟踪:所有的虚拟用户信息和函数调用输出到日志文件中
当你需要在出错时停止执行脚本,你怎么做?
取消运行设置中的“Continue on error”复选框。或者使用lr_abort函数。
你如何调试LoadRunner脚本?
通常采用以下方法调试LoadRunner测试脚本。
断点
【方法】在脚本的任意一行上按右键菜单或F9增加断点。
单步跟踪
【方法】通过菜单命令VUser—>Run Step by Step或F10,可以控制脚本以语句为单位执行。
日志输出
【方法】通过日志输出函数lr_message、lr_log_message、lr_output_message输出。
Vuser_init中包括什么内容?
Vuser_init中包含在脚本执行过程中只需执行一次的脚本。一般来说,所有需要初始化的都可以放在vuser_init里面,比如登录。在设置了迭代次数时,vuser_int只执行一次。
Vuser_end中包括什么内容?
vuser_end中一般包含退出的过程,比如退出系统,主要在脚本执行完成或停止时运行,在设置了迭代次数时,vuser_end只执行一次。
解释以下函数及他们的不同之处。
Lr_debug_message
lr_debug_message 函数在指定的消息级别
// 处于活动状态时发送一条调试消息。如果指定的
// 消息级别未处于活动状态,则不发出消息。
Lr_output_message
要发送不是特定错误消息的特殊通知,
Lr_error_message
函数将错误消息发送到
// 输出窗口和 Vuser 日志文件
Lrd_stmt lrd_exec 函数执行 lrd_stmt 设置的SQL语句。
Lrd_fetch 函数从结果集中提取后续若干行
result set.
函数准备用于
// 通过光标输出字符串(通常为 SQL 语句)
// 的下一结果集。对于 CtLib,它发出 ct_result
// 命令,并且在 ODBC 中它运行用于当前数据库
写出5个Loadrunner中常用函数,并对其中2个举例说明用法。
字符串复制
strcpy(str,"Hello ") ;
字符串连接
strcat(str,"World !");
lr_message("str: %s",str);
sprintf(s, "%s love %s.", "I", “ocean"); //产生:“I love ocean. "
变量转为参数,将变量str的值存到参数Param中
lr_save_string(str,"Param");
参数复制
lr_save_string(lr_eval_string("{Param}"),"Param_1");
参数转为变量
strcpy(str1,lr_eval_string("{Param_1}"));
HTML-based script与URL-based script的脚本有什么区别?
使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。
通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。
LoadRunner HTTP服务器状态代码都有哪些?
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
HTTP的超时有哪三种?
HTTP-request connect timeout、HTTP-request receive timeout、step download timeout
在什么地方设置HTTP页面filter?
在runtime_settings中download filter里面进行设置。
如何设置可以让一个虚拟IP对应到一个Vuser?
利用线程和进程做中介,逻辑上的对应。
选中Expert Mode,设置Options中的General
什么是contentcheck?如何来用?
ContentCheck的设置是为了让VuGen 检测何种页面为错误页面。如果被测的Web 应用没有使用自定义的错误页面,那么这里不用作更改;如果被测的Web 应用使用了自定义的错误页面,那么这里需要定义,以便让VuGen 在运行过程中检测,服务器返回的页面是否包含预定义的字符串,进而判断该页面是否为错误页面。如果是,VuGen就停止运行,指示运行失败。
使用方法:点击在runtime settings中点击“contentcheck”,然后新建立一个符合要求的应用程序和规则,设定需要查找的文本和前缀后缀即可使用。
network中的speed simulation是模拟的什么带宽?
模拟用户访问速度的带宽。