请求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几,下面脚本都不会执行,所以这写几都没关系
如果我一个脚本里有2个action,按现在的运行逻辑来看会先跑action再跑action2。
那么在action里面return返回值,只是结束了当前函数,那如何通过action来控制action2是不是要执行呢?
多个action的时候,return后面的数字就很有意义。-1的意思是,如果失败了,就把这个参数传给action2,action2看到这个-1就不再继续执行。 action后面所有的Action都不再执行。
return 0表示成功。
手工写检查点是特殊情况,不希望看见报错才用。
检查点你有可能一次找不到。多试几次。但是你要记住一点,你检查的这个内容一定是从服务器端返回的。
比如咱们论坛,你在找“退出”2个字的时候怎么都找不到,可能是服务器返回的是一个数字,在客户端转换成文字显示出来的。如果你在源码里面一找找到了就可以过了。如果找不到可以到Tree视图中去找。
来源:https://www.cnblogs.com/fanf/p/12632431.html