前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >脚本创建相关

脚本创建相关

作者头像
张树臣
发布2019-07-31 14:11:53
8380
发布2019-07-31 14:11:53
举报
文章被收录于专栏:软件测试经验与教训

请解释一下如何使用LR录制web脚本?

利用Virtual User Generator录制测试脚本,录制步骤:

1、选择合适的协议-Web(Http/Html),

2、设置录制选项(HTML-based Script/URL-based Script)

3、开始录制

脚本增强是做哪些工作?

插入事务

插入集合点

插入检查点

插入参数化

插入特殊函

  • 控制脚本流程 if...else
  • 字符串函数 strcmp
  • 输出函数 lr_output_message
  • lr的标准函数 lr_save_string

树视图和脚本视图各有什么优点?

Tree View的好处是使用户更方便地修改脚本,Tree View支持拖拽,用户可以把任意一个节点拖拽到他想要的地方,从而达到修改脚本的目的。用户可以右键单击节点,进行修改/删除当前函数参数属性,增加函数等操作,通过Tree View能够增加LoadRunner提供的部分常用通用函数和协议相关函数。

Script View:在Script View中能够看到一行行的API函数,通过Script View向脚本中增加一些其他API函数,对会编程的人来说很方便。

不同的应用类型一般使用什么类型的数据库?

互联网产品:mysql

金融类产品:oracle,DB2

企业ERP:sqlserver

APP:SqlLite

LoadRunner如何选择协议?

通常协议选择

  • 对于常见的B/S系统,选择Web(Http/Html)
  • 测一个C/S系统,根据C/S结构所用到的后台数据库来选择不同的协议,如果后台数据库是sybase,则采用sybaseCTlib协议,如果是SQL server,则使用MS SQL server的协议,至于oracle 数据库系统,使用Oracle 2-tier协议。
  • 对于没有数据库的C/S(ftp,smtp)这些可以选择Windwos Sockets协议。
  • 至于其他的ERP,EJB(需要ejbdetector.jar),选择相应的协议即可.
  • 一般可以使用Java vuser协议录制由java编写的C/S模式的软件, ,当其他协议都没有用时,只能使用winsocket协议

补充:

  1. LR支持多种协议,请大家一定要注意,这个地方协议指的是你的Client端通过什么协议访问的Server,Client一般是面向最终使用者的,Server是第一层Server端,因为现在的体系架构中经常Server层也分多个层次,什么应用层,什么数据层等等,LR只管Client如何访问第一层Server.
  2. 特别要注意某些应用,例如一个Web系统,这个系统是通过ActiveX控件来访问后台的,IE只是一个容器,而ActiveX控件访问后台是通过COM/DCOM协议的,这种情况就不能使用Web协议,否则你什么也录制不到,所以,LR工程师一定要了解应用程序的架构和使用的技术。
  3. 对于HTTPS,一般来讲要选择多协议,但在选择具体协议的时候一定只选Web协议,这时候才能作那个端口映射。

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是模拟的什么带宽?

模拟用户访问速度的带宽。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试经验与教训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档