我发现很难找到关于如何快速启动和运行WCAT的任何体面的教程.有没有人有一个关于它的正确教程的链接,他们发现在试图掌握WCAT时有用?
我有一个测试,用户将登录并在搜索字段中输入搜索关键字并获得结果.最后退出.
现在我想用Jmeter测试并发性.所以这就是我提出的.
Test plan
Thread group
+ Login request
+ Synchronizing Controller
+ Search string
+ Synchronizing Controller
+ Logout
Run Code Online (Sandbox Code Playgroud)
我添加了10个线程数.我在同步控制器中添加了5个.所以当我运行测试时,我将获得5个用户的并发性?休息5个用户将是同时用户?
此外,我在登录页面加载时依赖请求.因此,为了在登录时实现并发,我在事务控制器中添加了所有请求,并将作为子节点的Synchronizing Controller添加到事务控制器.如果我做得对,请告诉我.
另请告诉我是否有其他方法可以实现特定操作的并发性(例如:5个用户同时点击登录按钮).
我现在通过我的机器上的jmeter负载测试网站.但是我想要一个真实世界的场景,因此jmeter可以使用ip别名或ip欺骗,看起来像是从不同的ip地址发送请求.
我一直在尝试使用jmeter设置aws ec2机器来对我的web服务器进行负载测试,但是我被卡住了.我在我的本地机器上有一个jmeter客户端,我想在ec2上设置多个jmeter-server节点来进行负载测试,到目前为止,我只是想让一个服务器节点启动并运行.但它对我来说还没有成功.
我在我的本地机器上运行相同的jmeter,服务器和java版本有点不同,但我不认为这是问题所在.大多数人在获取正确的ip以便在客户端和服务器节点之间进行连接时遇到了问题,但经过大量搜索后,我已经解决了所有这些问题.当服务器节点尝试返回结果并尝试连接到客户端(我的本地计算机)时,我陷入困境.服务器尝试连接到本地计算机的外部IP地址.但是它会抛出连接拒绝错误,这显然是由连接超时引起的.我想这是一些防火墙问题,但我尝试关闭我的本地机器上的防火墙,但它仍然会抛出相同的错误.我不知道我怎么能超越这个,它应该花费太多时间.
有人可以建议我解决这个问题吗?谢谢!
这是它抛出的错误:
2013/01/29 12:23:37 ERROR - jmeter.samplers.RemoteListenerWrapper: testStarted(host) java.rmi.ConnectException: Connection refused to host: xxx.xxx.xxx.10; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:128)
at org.apache.jmeter.samplers.RemoteSampleListenerImpl_Stub.testStarted(Unknown Source)
at org.apache.jmeter.samplers.RemoteListenerWrapper.testStarted(RemoteListenerWrapper.java:83)
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:226)
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:349)
at java.lang.Thread.run(Thread.java:636)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
at java.net.Socket.<init>(Socket.java:392)
at java.net.Socket.<init>(Socket.java:206)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:146)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
... 8 more
Run Code Online (Sandbox Code Playgroud) 我的一些UnitTests有一个在循环中定义的Sleep.我想不仅要描述测试的每次迭代,而且要描述所有迭代的总时间,以便显示任何非线性缩放.例如,如果我描述"整体",它包括睡眠时间.我可以使用StopwatchStart/Stop以便它只包含doAction().但是,我无法将Stopwatch结果写入TestContext结果.
[TestMethod]
public void TestMethod1()
{
TestContext.BeginTimer("Overall");
for (int i = 0; i < 5; i++)
{
TestContext.BeginTimer("Per");
doAction();
TestContext.EndTimer("Per");
Sleep(1000);
}
TestContext.EndTimer("Overall");
}
Run Code Online (Sandbox Code Playgroud)
看起来TestContext可以继承并重新定义.但是,我没有看到任何关于如何将其写回事务存储的示例.
是否有我可以参考的实现,或其他想法.我希望在Visual Studio为LoadTest提供的报告中看到它.否则我必须写自己的报告.
此外,我试图嗅探将这些写入LoadTest数据库的SQL,但是没有成功地弄清楚如何.应该有一个SPROC来调用,但我认为它是测试结束时的所有数据.
这是我的示例代码:
var http = require('http');
var options1 = {
host: 'www.google.com',
port: 80,
path: '/',
method: 'GET'
};
http.createServer(function (req, res) {
var start = new Date();
var myCounter = req.query['myCounter'] || 0;
var isSent = false;
http.request(options1, function(response) {
response.setEncoding('utf8');
response.on('data', function (chunk) {
var end = new Date();
console.log(myCounter + ' BODY: ' + chunk + " time: " + (end-start) + " Request start time: " + start.getTime());
if (! isSent) {
isSent = true;
res.writeHead(200, {'Content-Type': …Run Code Online (Sandbox Code Playgroud) 我正在对新兴的Web技术进行一些研究,并创建了一个非常简单的Azure网站,该网站使用Web套接字和mongo db作为数据库.我已经设法让所有组件协同工作,现在必须对应用程序执行负载测试.
主要标准是应用程序可以支持的最大用户负载,目前有1个Web角色实例,因此我可能需要测试该实例的最大用户负载,然后尝试使用2个实例,依此类推.
我在网上找到了一些解决方案,比如Loadstorm,但我付不起使用这些服务,所以我需要能够从我自己的开发机器或其他云服务中做到这一点.
我遇到了Visual Studio加载测试,它们看起来非常有用,但它们似乎需要VS Ultimate和一个活动的msdn订阅 - 这里列出了先决条件.此外,从显示负载测试基础知识的视频来看,这些负载测试似乎与实际的Web项目完全分开创建,这是否意味着我只能看到与用户相关的指标?即我看不到正在使用的RAM数量,处理器等.
有什么建议?
我们想用50-100k并发用户加载测试我们的网站,我看到蝗虫可以在一台机器上支持数千个用户,但我们想增加它.我们如何在多台机器上设置蝗虫来运行相同的测试?似乎在README和文档上提示它.
主从文档可以在这里找到:
嗨,我使用locustio(python)来测试webapp(django)上的负载.当我尝试测试它时,我总是遇到403错误的挑战.他是代码
from locust import HttpLocust, TaskSet
def index(l):
l.client.get("/")
def login(l):
l.client.post("/login/", {"username":"an@id.com", "password":"education")
def upload(l):
l.client.get("/upload-image/")
def home(l):
l.client.get("/home/")
def settings(l):
l.client.get("/settings/")
def logout(l):
l.client.get("/logout/")
class UserBehavior(TaskSet):
tasks = {index:1, upload:1, home:1, settings:1, logout:1}
def on_start(self):
login(self)
class WebsiteUser(HttpLocust):
task_set = UserBehavior
min_wait=5000
max_wait=9000Run Code Online (Sandbox Code Playgroud)
load-testing ×10
jmeter ×4
locust ×2
amazon-ec2 ×1
azure ×1
c# ×1
concurrency ×1
django ×1
firewall ×1
http ×1
ip ×1
java ×1
node.js ×1
python ×1
request ×1
spoofing ×1
unit-testing ×1
wcat ×1