南海紫竹林 发表于 2018-6-7 15:33:39

关于loadrunner的web_reg_find()函数



帮助文档的示例,web_reg_find()函数检查执行登录操作后页面的Body部分是否有 Welcome字符串。
实际情况:
1、我用web_reg_find()函数去校验 WebTours 的登录功能,确实是检查登录后的页面是否有 Welcome字符串。
2、但是我用web_reg_find()函数 去校验WebTours 的的注册功能,检查的却是注册页面是否存在相应字符串,而不是注册成功后的页面是否存在相应字符串。

使用web_reg_find()函数为什么会存在这样的情况,1、用在登录操作前 是 搜索登录成功后的页面   2、用在注册操作 前却检查注册页面 (而不是注册成功后的页面)

登录和注册,感觉就一个区别
1、登录是 get请求
2、注册 是post请求

但是帮助文档并没有区分 get 或post请求 ,求解?谢谢

luming 发表于 2018-6-7 15:59:50

不是get和post的问题,应该是响应页面的问题。
在loadrunner的函数说明中,The web_reg_find function registers a request to search for a text string on a Web page retrieved by the next action function, such as web_url.
也就是web_reg_find函数支队下一个请求的响应结果进行判断,比如web_reg_find的下一个请求是a.html,那么检查a.html,WebTours 注册操作是否返回的是b.html而不是请求的a.html,所以无法进行判断。

南海紫竹林 发表于 2018-6-7 16:35:41

luming 发表于 2018-6-7 15:59
不是get和post的问题,应该是响应页面的问题。
在loadrunner的函数说明中,The web_reg_find function reg ...

大概明白了,谢谢!谢谢!谢谢!:handshake
1、登录:登录操作是从服务器获取资源,所以这个的请求对象应该是登录成功后的页面 (主页.html)
2、注册:注册操作是将表单数据提交到服务器(所以注册操作的请求对象实际就是注册页面(向服务器发出一个 提交注册信息的请求))。

总的来说,这个函数检查的页面就是下一步操作请求的对象(HTML页面)。
描述可能不太恰当,不过大概应该是这样的意思。

还是用 web_get_int_property() 函数去校验返回的状态码是不是200好了。感觉loadrunner要是有selenium那么完善的元素定位功能就好了,可惜不太现实,毕竟这个工具的主要功能还是用于负载压力测试

luming 发表于 2018-6-8 10:36:14

南海紫竹林 发表于 2018-6-7 16:35
大概明白了,谢谢!谢谢!谢谢!
1、登录:登录操作是从服务器获取资源,所以这个的请求对象 ...

不需要专门去判断返回请求是否是200,因为返回的通常是200或300被lr认为是正常的返回请求,400、500系列返回请求本来就会报异常。
但是虽然不需要判断200,但是还是建议使用web_reg_find判断请求返回页面。我前一段测试就遇到过这样的情况。
录制回放没有错误。但是开全日志检查,就会发现每次返回结果都会跳到登录页面,我花费了很久都没有找到为什么。
无法使用web_reg_find判断,因为请求的返回页面是空白页面,只能通过全日志查看返回页面。
后来找了好久才发现,原来开发人员只设计了很短的时间登录超时,而因为页面有很多附加的js等,开全日志会花费5、6分钟才能发出请求,这个时间页面超时了,所以就返回了登录页面让你重新登录。
开发人员把登录超时时间加长,再请求就没有问题了。
实际性能测试情况下,因为web_reg_find还有日志都会消耗一定资源,很多人建议不开页面检查和日志,具体还是看性能测试的要求了,每个人都会有自己的测试理解。

qqq911 发表于 2018-6-8 13:21:57

注册页面和登录页面,服务端返回的信息必然是不同的,你可以在tree模式中,根据服务器返回的数据,设置不同的检查点,这样都可以检测到。

南海紫竹林 发表于 2018-6-8 16:56:16

luming 发表于 2018-6-8 10:36
不需要专门去判断返回请求是否是200,因为返回的通常是200或300被lr认为是正常的返回请求,400、500系列 ...

嗯,谢谢!我再研究研究

南海紫竹林 发表于 2018-6-8 17:04:21

qqq911 发表于 2018-6-8 13:21
注册页面和登录页面,服务端返回的信息必然是不同的,你可以在tree模式中,根据服务器返回的数据,设置不同 ...

我现在安装的是 loadrunner 12.55的版本。
web_find()函数在12.55中已经弃用了,现在是改用web_reg_find 函数
页: [1]
查看完整版本: 关于loadrunner的web_reg_find()函数