51Testing软件测试论坛

标题: loadrunner不支持java多线程吗? [打印本页]

作者: superfang    时间: 2011-2-21 18:17
标题: 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 [param not passed in call] thread TLS entry.

不知道是不支持呢,还是别的原因....
如有遇到同样的问题,请赐教...
作者: superfang    时间: 2011-2-22 15:47
自己先顶一下吧. 要不帖子沉下去了...
作者: mr.bee    时间: 2011-2-24 10:40
应该是不支持的
作者: qiguojie    时间: 2011-2-24 10:47
运行时设置里,设置以进程方式执行看看。。

没有尝试过在脚本中实现多线程。
作者: 云层    时间: 2011-2-24 10:51
没具体试过不过可能和lr自己的进程或者线程方式有冲突,既然用java写了,你可以考虑不要使用LR调用了
作者: superfang    时间: 2011-2-25 18:01
回复 4# qiguojie


    以进程的方式也是一样的... 不成功
作者: superfang    时间: 2011-2-25 18:03
回复 5# 云层

可以考虑一下... 但是用 loadruner 可以很直观的看到生成的测试结果...
作者: 泊涯    时间: 2011-2-27 11:46
你这个代码是怎么连接到服务器的 IP地址呢
作者: kelly_yan    时间: 2011-3-2 15:25
我也曾经努力的试过。后来没有成功。所以我展示认为不支持多线程的了。
后来我用jmeter进行测试的。你可以试试用其他的方式来测试。
作者: superfang    时间: 2011-4-8 16:26
回复 8# 泊涯


    http://localhost:7080/webjava/
作者: 泊涯    时间: 2011-4-10 10:11
回复 10# superfang


    应该是类似这样的才行把
System.out.println("登陆开始");
String url = "http://192.64.96.105:1178/app/CServlet";
                 HttpClient client = new HttpClient();
                 PostMethod method = new PostMethod(url);




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2