loadrunner脚本开发-添加检查点

旧街凉风 提交于 2020-04-05 16:52:30

请求request:请求头信息、请求数据

响应response:响应头、响应数据

页面右键源码:只有请求返回的数据信息,没有返回的头信息。

 get请求  :web_url(“打开首页”,“URL=http://192.168.8.105/bbs/forum.php”,LAST);

post请求:

函数可帮助文档:尖括号<>和中括号[]中的是可选参数

 

html资源:静态资源能再右键源码中找到

额外资源:录制的脚本有额外资源;页面右键源码中 不能找到额外资源

额外资源一般删了不影响,但是如果额外资源中包含了一些业务相关的非资源类请求,就不能删

字符集编码:浏览器网页中右键,编码 能看到编码类型,如Unicode(UTF-8)

检查点——》找返回的中文数据:(尽量找英文,找中文容易有问题)

录制的脚本,如果录制的时候浏览器是utf-8,loadrunner会自动把他设置为utf-8,查找时会找到中文的返回数据。如果不是录制的是自己写的脚本,是找不到中文的返回数据的,编码格式会不一致,需要我们把要找的文字转化为utf-8格式的数据。

看有没有成功站在2个角度:工具角度,lr看有没有成功是看请求有没有成功;业务有没有成功你需要去加检查点。我们性能虽然不关注功能是否正确,但是性能再好功能必须是对的。

所以我们就有必要对关键的业务加上检查点

 

接下来我们看看检查点怎么写比如论坛的登录功能我想看看登录是否成功了

只要你认为这个信息是登录成功之后才能出现的你都可以作为检查点

写检测点2中策略:一种是打开这个页面看到这个东西,找到我写的检查点。这种策略就是页面一定回来了。页面已经到本地,能看见了。

另一种策略是我先去登记一下我期望的信息然后我再去发请求这样服务器端在返回数据的时候lr去自动去帮你去找有没有你登记的值如果有会告诉你通过没有会告诉你失败类似于咱们的关联函数,先登记后验证

 

我如果去登记退出为我的期望信息,检查点函数应该写到什么位置?

登录之前,和关联函数一模一样。

退出2字是什么时候出来的,登录-刷新之后,所以我要写到刷新之前。登记的时候肯定是数据还没回来之前。

Tree视图中,刷新之前返回的数据中去找退出。

提交登录后也会返回数据我在登录这一步去找登录返回的数据也可

那么我这个检查点写到提交的前面可以吗?

可以,验证只要服务器端返回了下图中的信息就说明成功了。

 

或者去验证服务器端返回了登录失败这几个字。说明登录失败了。就是反过来验证。

添加检查点:insert-》new step-》找到web_reg_find函数-》点ok

这样我们就可以在脚本里面去写这个检查点。

在不同的位置写,检查的东西不一样,但意义是一样的。

web_reg_find("Fail=NotFound",

"Search=All",

"Text=退出",

LAST);

 

Search  in是我希望从返回的什么数据里面找。服务器端返回的包括头、body。不选是所有的信息中查找。

Faill:意思是如果找到了失败,还是找不到失败。

 

 

手工检查点:  (添加了手工检查点,如果找不到也是不会报错的)

save count:把找到的内容的个数保存下来。如果你在这个输入框后面写个cc,就会把找到的个数如3,保存到这个cc参数里。如果一旦勾选他了之后,就算找不到,脚本也不会报错。比如找到0个,他会告诉你cc=0不报任何错,也不说失败。意思是勾选了这个之后,这个检查点就不再是自动检查点,而是手动检查点。就是你来判断成功还是失败。

如果勾选上了,你可以自己写检查点,如,如果cc=0,这个事物失败。这样好处是不会报错。

不加这个选项就是真正意义上的检查点,一旦失败,后面的脚本就不再执行了。脚本就终止了。

只要设置了save coun的值就会成为手工检查点

 

 

 

我把登录放到一个事物里面。然后检查点要查找的内容写错,回放能成功吗?

不能。检查点如果失败出错了,事物都是失败的。

 

手工写检查点。插入函数。

 

可以在事物结束的时候加个判断

lr_eval_string是取出参数cc的值,这个函数返回的字符类型是字符串类型的。拿字符串和整型做比较是不可以的。让他等于0就是业务失败。

这样写的话字符类型不匹配,所以要做个字符转换,在这个函数前面加atoi就是把cc参数的值传给atoi转换成int类型和0做比较

 

没找到就是失败我们的结束事物就可以写成下面这样AUTO自动修改为FAIL

 

接下来写否则事物通过

 

如果登录失败,我们下面的脚本希望不继续执行,我们需要写return

在我这个脚本里不管我写return下面脚本都不会执行所以这写几都没关系

 

如果我一个脚本里有2action,按现在的运行逻辑来看会先跑action再跑action2

 

那么在action里面return返回值只是结束了当前函数那如何通过action来控制action2是不是要执行呢?

 

多个action的时候return后面的数字就很有意义-1的意思是,如果失败了,就把这个参数传给action2action2看到这个-1就不再继续执行 action后面所有的Action都不再执行。

return 0表示成功

 

手工写检查点是特殊情况不希望看见报错才用

 

检查点你有可能一次找不到。多试几次。但是你要记住一点,你检查的这个内容一定是从服务器端返回的

比如咱们论坛你在找“退出”2个字的时候怎么都找不到,可能是服务器返回的是一个数字,在客户端转换成文字显示出来的。如果你在源码里面一找找到了就可以过了。如果找不到可以到Tree视图中去找。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!