因工作需要,临时对性能测试进行脚本编写支援,只能临时抱佛脚学习了一下LR;
本来以为LR只支持C编写脚本。偶然发现,除了C,也支持Java方式编写脚本,而且支持jar包引入、调用等功能;
这里得注意,目前的比较稳定的LoadRunnable11只支持JDK1.6版本,且运行脚本前需要将%JAVA_HOME%\bin目录配置到脚本运行环境;
具体配置可了解我下面的帖子:
http://note.youdao.com/share/web/file.html?id=e7e2510fb88a51b4be2674660d6a9e6c&type=note
上面帖子思路主要就是新建Jvuser用户,然后引入通讯Jar包(jar包是通过httpclient来进行连接)来发送http或者get请求;
实际运行,包括建立场景压测都没问题,但在过程中发现
图片标记的htis/Second没有值;(实际TPS应该是有值的,此处的演示图片没有)
百度啊百度,谷歌啊谷歌,还是没有答案;
最后终于发现,在发送post或者get时,只有用LR本身的web.custom_request函数发送,相关图片才会正常显示;
修改脚本:
/*
* LoadRunner Java script. (Build: _build_number_)
*
* Script Description:
*
*/
import lrapi.lr;
import lrapi.web;
public class Actions
{
String htmlBody;
public int init() throws Throwable {
return 0;
}//end of init
public int action() throws Throwable {
// 手动关联,获得连接成功后的status
web.reg_save_param("status",new String[]{
"LB=\"status\":",
"RB=,\"",
"LAST"});
// 1. 发送 POST请求(用户登录API)
web.custom_request("ViewStreamLogin",
"Method=POST",
new String[]{
"URL=http://121.40.62.210/caocao/customer/book.do",
htmlBody,
"TargetFrame=",
"LAST"});
lr.log_message("*****************Status的值是"+lr.eval_string("<status>")+"***********");
return 0;}//end of action
public int end() throws Throwable {
return 0;
}//end of end
}
在设置场景运行
此时一切正常;