这段时间做一个java产品的性能测试。nosql存储的。需要通过固定的java编写的client向服务器发送数据。所以用loadrunner的java vuser协议尝试进行并发。如果是破解版的loadrunner,需有将license换成100,不要用10000那个,否则不支持java。
1,新建 java vuser协议。 init和end里的内容不用做任何修改。因为action里包含了这两项
2,脚本如下:
import lrapi.lr; //此为loadrunner自带的不要删除,下面是引用定义好的类。开发会把这些类放在jar包中
import voldemort.client.ClientConfig;
import voldemort.client.SocketStoreClientFactory;
import voldemort.client.StoreClient;
import voldemort.client.StoreClientFactory;
import voldemort.versioning.Versioned;
public class Actions
{
StoreClient<String, String> client; //公共区域
public int init() throws Throwable {
String bootstrapUrl = "tcp://192.168.64.183:8003"; //只建立一次tcp连接
StoreClientFactory factory = new SocketStoreClientFactory(new ClientConfig().setBootstrapUrls(bootstrapUrl)
client= factory.getStoreClient("test");
return 0;
}
public int action() throws Throwable {
client.put("<key>","中国人中国人"); //循环部分,写数据
client.get("<key>"); //循环部分,读数据
return 0;
}
public int end() throws Throwable {
return 0;
}
}
几点注意事项:jar包要放在vuser script的根目录下,否则找不到
运行loadrunner的机器上要装有jdk,否则java不能编译
多台客户端同时加压时,要将jar包每台机器上都放一份。具体放置位可以设置系统环境变量(不过我没设置成功),用第二种方法手工copy过去,位置可以在主vuser上的脚本文件夹中找到collate.txt文件,打开后会有其它客户端的脚本位置,192.168.xx.xx=d:\Temp\brr_YAR.419\netdir\D\script\java\res\192.168.64.68_45.eve。将需的jar包考到d:\Temp\brr_YAR.419\netdir\D\script\java下即可。
感觉在java项目上的支持,loadrunner还是有限的。运行了几次偶尔有出错的现象,具说是loadrunner不支持多线程并发模式。后来在运行设置中,将线程模式改为进程模式。运行一切正常,不过这种方式太耗资源了,只能用多台客户端进行。
loadrunner的java vuser协议
最新推荐文章于 2021-12-30 16:21:06 发布