我有一个场景,我必须在系统上模拟 150 个登录用户,他们将以每秒 8 个请求的速率向不同的页面发出请求,并具有登录状态。
我该怎么做 假设 1:考虑有两个 http 采样器,一个用于登录功能,另一个用于请求我想要的页面(选择产品页面)。但我的疑问是,这是在其他页面(选择产品页面)上模拟登录用户的正确方法吗?由于登录和选择产品页面请求位于不同的 HTTP 采样器中,因此我猜他们的访问权限将被不同对待,并且我最终将作为选择产品页面上的匿名用户而不是登录用户。请提出解决方案。
我不想每次请求选择产品页面时都登录,因为登录是一个大瓶颈,需要很多时间,我想首先登录所有用户,而不是使用登录用户来 ping 选择- 具有登录状态的产品页面。
如果我有多个 HTTP 采样器(用于登录、选择产品),则对服务器的请求数会增加,但我始终希望将请求数限制为 8。
请帮忙。
谢谢。
我用于jmeter负载和性能测试。我能够仅使用一个用户作为负载来成功生成摘要报告。但是,如果我想为多个用户(例如 100 个用户)生成摘要报告,如何配置jmeterGUI 来生成摘要报告?
提前致谢 :)
我目前需要对Web解决方案进行负载测试,这需要在主页(欢迎页面)中进行用户身份验证.
当我在FireFox中使用FireBug寻找与登录凭证一起传递的POST SignIn参数时,我发现Password,TenantName,UserName,__ RequestVerificationToken是传递成功登录的值的参数.
我需要使用JMETER来模拟这个过程.
因此,我已经使用JMETER进行了HTTP REQUEST(访问登录页面)导航到该页面,该页面成功运行.
在HTTP REQUEST(访问登录页面)中,我添加了一个正则表达式提取器来提取令牌,因为必须将令牌与登录一起传递.

我已经添加了一个单独的HTTP请求(登录到Web)以及如下所示的参数登录;
但是当我运行它时,在查看结果树下,响应数据生成为"防伪令牌无法解密..."
当我检查查看结果树下的请求显示时,它显示为
POST数据:
密码= 123456&TenantName =租户&用户名= admin&__ RequestVerificationToken =%24%7BREQUEST_VERIFICATION_TOKEN%7D*
在请求中我意识到RequestVerificationToken的值没有被初始化.
我正在通过博客搜索解决方案两天,最终没有适当的帮助我倾向于在这里发布这个问题.
这是一个参考链接,在某种程度上是有用的,我使用过:http :
//build-failed.blogspot.com/2012/07/load-testing-aspnet-mvc-part-3-jmeter.html?showComment = 1417672985397#c6427302313332055578
有人可以帮我解决为什么RequestVerificationToken没有正确解压缩,或者初始化为变量?
(P:请你好好假设我是JMeter的初学者,说实话,当你提供宝贵的回复时)
我在 nodejs 中有一个应用程序,我正在对数千名用户进行测试。对于 1000 个用户(当服务器部署在本地时),对于大多数测试用例,Jmeter 失败,提供以下内容:
org.apache.http.NoHttpResponseException: The target server failed to respond
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:95)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:61)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254)
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289)
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191)
at org.apache.jmeter.protocol.http.sampler.MeasuringConnectionManager$MeasuredConnection.receiveResponseHeader(MeasuringConnectionManager.java:201)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127)
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:715)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:520)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:517)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:331)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1146)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1135)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:434)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:261)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
有时,我也会得到这个:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:196)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:166)
at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:90)
at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:281)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:92)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:61)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254)
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289)
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252)
at …Run Code Online (Sandbox Code Playgroud) 我希望用户可以在从加特林执行时从命令行输入“ Count,repeatCount,testServerUrl和definitionId”。从命令行执行
Run Code Online (Sandbox Code Playgroud)> export JAVA_OPTS="-DuserCount=1 -DflowRepeatCount=1 -DdefinitionId=10220101 -DtestServerUrl='https://someurl.com'" > sudo bash gatling.sh但给出以下错误:
url null / api / workflow无法解析为URI:方案
基本上空值传递在那里。'definitionId'也一样。以下是代码。您可以尝试使用任何网址。您只需要检查通过命令行提供的值是否显示?
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class TestCLI extends Simulation {
val userCount = Integer.getInteger("userCount", 1).toInt
val holdEachUserToWait = 2
val flowRepeatCount = Integer.getInteger("flowRepeatCount", 2).toInt
val definitionId = java.lang.Long.getLong("definitionId", 0L)
val testServerUrl = System.getProperty("testServerUrl")
val httpProtocol = http
.baseURL(testServerUrl)
.inferHtmlResources()
.acceptHeader("""*/*""")
.acceptEncodingHeader("""gzip, deflate""")
.acceptLanguageHeader("""en-US,en;q=0.8""")
.authorizationHeader(envAuthenticationHeaderFromPostman)
.connection("""keep-alive""")
.contentTypeHeader("""application/vnd.v7811+json""")
.userAgentHeader("""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36""")
val headers_0 …Run Code Online (Sandbox Code Playgroud) 是否有读取 csv 文件以获取测试数据的最佳实践方法?
假设我有一个如下所示的 CSV 文件:
username,password
joe,secret1
jane,secret2
bill,secret3
Run Code Online (Sandbox Code Playgroud)
...我想在 k6 脚本中使用这些用户名和密码。
我有一个带有多个线程组的 JMeter 测试计划。当我执行我的测试计划并生成仪表板报告时,它会显示所有采样器及其统计信息。我想分离报告以在同一报告中分别显示每个线程组的结果。
示例:线程组:线程组的步骤:统计
我有一个 jmeter 脚本,可以在 20 分钟内增加 20 个用户(每分钟 1 个用户)并保持 30 分钟,然后每分钟减少 1 个用户。
我如何在加特林中实现这一目标?
我在加特林中尝试了以下设置,
SAAPIBase.scn_SA_Auth.inject(rampUsers(20) during (20 minutes)).protocols(httpConf)
).maxDuration(50 minutes)
Run Code Online (Sandbox Code Playgroud)
这会增加 20 名用户 20 分钟,并保持 30 分钟 20 名用户。但在那之后它突然下降到零。
我如何每分钟缓慢减少 1 个用户?
如何测试托管在 Azure 应用服务上的 SignalR 应用程序(负载 + 功能组合) 我们正在构建一个 SignalR 应用程序,用于在活动和大会期间(实时)向观众进行问卷调查。我们预计有 1000-2000 个活跃并发用户的会话,这意味着大多数用户将同时连接。这会导致短时间内的重负载。我们想要模拟 x 个同时连接的唯一客户端。例如,1000 个用户在 30 秒内连接。语言和 signalR 包:该应用程序是使用 .NET Core 2.2 和 React 前端构建的。*SignalR 包 (.NET) Microsoft.AspNetCore.SignalR.Core (1.1.0) *SignalR 包 (npm) @aspnet/signalr (1.1.4) Azure 设置 我们正在使用 Azure SQL DB 的 Azure Appservice 上运行我们的应用程序。我们正在使用 Azure SignalR 服务,并将根据客户的需求进行扩展。
测试我们尝试使用Jmeter进行负载测试,并进行了GUI测试(使用Selenium进行小规模100-200个用户)。我们还运行了一个应用程序内测试,通过 JavaScript 循环创建集线器连接。但我们无法确保我们的应用程序能够在 1000-2000 个活动连接下运行。我的问题是如何测试这种类型的应用程序并确认它。我不可能是第一个构建这样的应用程序的人。
我是否需要一些第三方工具(如load runner)来进行Web应用程序的可伸缩性测试?或者我可以使用selenium为我执行此操作.请指导.
谢谢
selenium scalability web-applications load-testing performance-testing
load-testing ×10
jmeter ×5
performance ×3
gatling ×2
.net ×1
asp.net-mvc ×1
c# ×1
javascript ×1
k6 ×1
node.js ×1
regex ×1
scala ×1
scalability ×1
selenium ×1
token ×1