loadrunner不支持java多线程吗?
本帖最后由 superfang 于 2011-2-21 18:19 编辑=========java代码=========================
import java.io.IOException;
import java.net.URL;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Semaphore;
public class TT {
public static void main(String[] args) {
// 线程池
ExecutorService exec = Executors.newCachedThreadPool();
// 只能5个线程同时访问
final Semaphore semp = new Semaphore(10);
// 模拟20个客户端访问
for (int index = 0; index < 20; index++) {
final int NO = index;
Runnable run = new Runnable() {
public void run() {
try {
// 获取许可
semp.acquire();
int c;
try {
URL url = new URL("http://localhost:7080/webjava/");
java.net.URLConnection uc = url.openConnection();
java.io.InputStream in =uc.getInputStream();
System.out.println("Accessing: " +NO +" "+ in.toString());
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//System.out.println("Accessing: " + NO);
//Thread.sleep((long) (Math.random() * 10000));
// 访问完后,释放
semp.release();
} catch (InterruptedException e) {
}
}
};
exec.execute(run);
}
// 退出线程池
exec.shutdown();
}
}
===========loadrunner 代码============
public int init() throws Throwable {
return 0;
}//end of init
public int action() throws Throwable {
// Tweb.main((String []) null);
TT.main((String []) null);
return 0;
}//end of action
public int end() throws Throwable {
return 0;
}//end of end
在Vuser中测试通过,但是在controller里面报如下的错误
错误1: Abnormal termination, caused by mdrv process termination.
错误2:
Error (-17998): Failed to get thread TLS entry.
不知道是不支持呢,还是别的原因....
如有遇到同样的问题,请赐教... 自己先顶一下吧. 要不帖子沉下去了... 应该是不支持的 运行时设置里,设置以进程方式执行看看。。
没有尝试过在脚本中实现多线程。 没具体试过不过可能和lr自己的进程或者线程方式有冲突,既然用java写了,你可以考虑不要使用LR调用了 回复 4# qiguojie
以进程的方式也是一样的... 不成功 回复 5# 云层
可以考虑一下... 但是用 loadruner 可以很直观的看到生成的测试结果... 你这个代码是怎么连接到服务器的 IP地址呢 我也曾经努力的试过。后来没有成功。所以我展示认为不支持多线程的了。
后来我用jmeter进行测试的。你可以试试用其他的方式来测试。 回复 8# 泊涯
http://localhost:7080/webjava/ 回复 10# superfang
应该是类似这样的才行把
System.out.println("登陆开始");
String url = "http://192.64.96.105:1178/app/CServlet";
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(url);
页:
[1]