superfang 发表于 2011-2-21 18:17:55

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.

不知道是不支持呢,还是别的原因....
如有遇到同样的问题,请赐教...

superfang 发表于 2011-2-22 15:47:05

自己先顶一下吧. 要不帖子沉下去了...

mr.bee 发表于 2011-2-24 10:40:27

应该是不支持的

qiguojie 发表于 2011-2-24 10:47:05

运行时设置里,设置以进程方式执行看看。。

没有尝试过在脚本中实现多线程。

云层 发表于 2011-2-24 10:51:21

没具体试过不过可能和lr自己的进程或者线程方式有冲突,既然用java写了,你可以考虑不要使用LR调用了

superfang 发表于 2011-2-25 18:01:46

回复 4# qiguojie


    以进程的方式也是一样的... 不成功

superfang 发表于 2011-2-25 18:03:28

回复 5# 云层

可以考虑一下... 但是用 loadruner 可以很直观的看到生成的测试结果...

泊涯 发表于 2011-2-27 11:46:27

你这个代码是怎么连接到服务器的 IP地址呢

kelly_yan 发表于 2011-3-2 15:25:03

我也曾经努力的试过。后来没有成功。所以我展示认为不支持多线程的了。
后来我用jmeter进行测试的。你可以试试用其他的方式来测试。

superfang 发表于 2011-4-8 16:26:29

回复 8# 泊涯


    http://localhost:7080/webjava/

泊涯 发表于 2011-4-10 10:11:03

回复 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]
查看完整版本: loadrunner不支持java多线程吗?