loadrunner怎么进行内容检查

Posted cindy04

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了loadrunner怎么进行内容检查相关的知识,希望对你有一定的参考价值。

运行测试时,常常需要验证某些内容是否出现在返回的页面上。内容检查验证脚
本运行时 Web 页面上是否出现期望的信息。可以插入两种类型的内容检查:
➤ 文本检查。检查文本字符串是否出现在 Web 页面上。
➤ 图像检查。检查图像是否出现在 Web 页面上。
文本检查
在这一节,您将添加文本检查,检查 Find Flight 是否出现在脚本中的订票页面上。
要插入文本检查,请执行以下操作:
1 打开文本检查向导。
确保出现 “任务”窗格。如果未出现,请单击任务按钮。在 “任务”窗格的增强
功能下单击内容检查。
内容检查向导打开,显示脚本中每个步骤的缩略图。

 


选择工具栏中的 html 视图以显示缩略图的快照。

2 选择包含待检查文本的页面。
单击名为 reservations.pl 的第四个缩略图。
3 选择要检查的文本。
突出显示快照内的文字 Find Flight (查找航班),然后右键单击并选择添加文本
检查 (web-reg-find)。
将打开 “查找文本”对话框,显示在查找选定内容框中选定的文本。单击确定。
4 查看新步骤。
在树视图 (视图 > 树视图)中,您会看到 VuGen 在脚本中插入了一个新步骤
Service: Reg Find。这一步注册文本检查, LoadRunner 将在运行步骤后检查文
本。回放期间, VuGen 将查找文本 Find Flight 并在回放日志中指出是否找到。

 

注:

回放日志中能看到Registering web_reg_find was successful是让 VuGen 准备好在表单提交后检查文本,而Registered web_reg_find successful for "Text=Find Flight" (count=1)表示查找成功,如果没有,单击action,右键run-time setting中,Internet Protocol --preference 中第一选项,checks,勾选上。

 

检查点输入中文不能识别的问题:

转载自:http://www.51testing.com/html/44/316844-845447.html

以访问我空间首页为例,设置检查点,检查文本“jmeter参数化”

结果,无论是web_find还是web_reg_find,结果全是失败

 

Action.c(13): Continuing after Error -26366: "Text=Jmeter参数化" not found for web_reg_find  [MsgId: MERR-26366]

Action.c(13): web_url("www.51testing.com") highest severity level was "continue on error", 240255 body bytes, 18483 header bytes, 162 chunking overhead bytes      [MsgId: MMSG-26387]

Action.c(13):Continuing after error in Vuser script.

Action.c(46):Continuing after Error -27195: "web_find" failed. 0 occurrence(s) of "Jmeter参数化" found (RightOf="", LeftOf="")        [MsgId: MERR-27195]

Action.c(46): web_find highest severity level was "continue on error"      [MsgId: MMSG-26391]



 

而直接检查jmeter则可以成功,基本判定还是中文识别的问题

网上提到的使用lr_convert_string_encoding函数,将中文转换成UTF8,然后再去检查,不知道是不是我写的不对,结果还是验证失败

最后看到一文章提到中文字符集和中文检查点的关系,发现51的编码是简体中文gbk,而我录制时,录制选项里里,Utf-8是勾选的

于是重新录制脚本,清除Utf-8选项,设置同样中文检查点,回放通过

同样,经试验,UTf-8编码的百度网站,启用UTF-8录制,中文检查点也是可以成功的

 

因此,在录制脚本时最好还是先看下网站的编码格式,然后设置相应的录制选项-支持字符集,确认是否启用UTF-8,以确保后续的中文检查点的正常运行。

 

web_find和web_reg_find 区别:

使用web_reg_find不用启用文本检查点功能

使用web_find就一定要启用文本检查点功能,否则检查点无效,

web_reg_find和web_find放的位置有区别,web_reg_find需要放在检查内容的前面,而web_find放在检查内容的后面

正常的结果就是:
1,启用了检查点,当检查到时,返回值为0;当检查不到时,返回值为1。
2,不启动检查点,一直返回0.

web_find
该函数主要针对HTML页面显示的内容进行搜索。
中的百度一下是不可以搜索的到
而标题"百度一下,你就知道" 可以搜索的到。

web_find中文支持问题:

使用URL方式去录制就能解决此问题,另外可能引起的是字符集的问题,不要选则UT-8

web_find当没查找到字符时,就报错,停止继续运行
Action.c(31): Error -27195: "web_find" failed. 0 occurrence(s) of "新闻" found (RightOf="", LeftOf="") [MsgId: MERR-27195]
Action.c(31): web_find highest severity level was "ERROR" [MsgId: MMSG-27181]

 

web_find()插入检查点回放错误

 

Action.c(83): Error -27985: There is no context for HTML-based functions. A previous function may not have used "Mode=HTML" or downloaded only non-HTML page(s), or the context has been reset (e.g., due to a GUI-based function)   [MsgId: MERR-27985]
Action.c(83): web_find highest severity level was "ERROR"   [MsgId: MMSG-26391]

 

原因:web_find()仅支持基于HTML模式录制的脚本中,如果是基于url的脚本插入后会有如上的错误

 

解决办法:换成使用web_reg_find()函数即可

 

另外注意:LoadRunner回放默认是不勾选启用检查点的,需要在回放设置中手动勾选才生效

 

 

web_reg_find()函数中文查找失败

 

解决办法:将运行设置-》preference的convert from/to UTF-8设置位yes即可

 

 

函数模板:

A. web_reg_find("Text=Payment Detdils", "Fail=NotFound",LAST);或者

 

B. web_reg_find("Text=Payment Detdils", "Fail=Found",LAST);

 

代码思路:

 

1."Payment Details" 为你要检查的文本;

 

2. 若是A代码:脚本执行到此处,若没有找到check的字符串,脚本将FAIL, 并且停止执行下去。反之,则一直执行下去。

 

3. 若是B代码:脚本执行到此处,若找到check的字符串,脚本将FAIL, 并且停止执行下去。反之,则一直执行下去。

 

以上是关于loadrunner怎么进行内容检查的主要内容,如果未能解决你的问题,请参考以下文章

LoadRuner数据库参数化输入

LoadRunner性能测试基本步骤

LoadRunner编程之文件的操作

想做性能测试不知道怎么选顺手的工具?

loadrunner文本中怎么添加检查点

LoadRunner内部结构