0

我有一个 cakephp 应用程序,想用 JMeter 测试一下,在我的应用程序前面,我们需要先登录,登录后我们可以访问该页面。我已经在 J​​Meter 中写入了参数名称和值,以便 JMeter 可以自动登录。我这样写:

名称:值:

data[User][username]           admin
data[User][password]           12345

然后,我添加了两个 HTTP 请求,第一个是访问默认页面,第二个是访问索引表单。但是当我运行应用程序时,我在结果中发现了这个:

2012/07/06 15:49:33 INFO  - jmeter.engine.StandardJMeterEngine: Running the test! 
2012/07/06 15:49:33 INFO  - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*) 
2012/07/06 15:49:33 INFO  - jmeter.engine.StandardJMeterEngine: Starting 5 threads for group J Meter User. 
2012/07/06 15:49:33 INFO  - jmeter.engine.StandardJMeterEngine: Thread will continue on error 
2012/07/06 15:49:33 INFO  - jmeter.threads.JMeterThread: Thread started: J Meter User 1-1 
2012/07/06 15:49:33 INFO  - jmeter.engine.StandardJMeterEngine: All threads have been started 
2012/07/06 15:49:33 INFO  - jmeter.threads.JMeterThread: Thread finished: J Meter User 1-1 
2012/07/06 15:49:33 INFO  - jmeter.engine.StandardJMeterEngine: Ending thread J Meter User 1-1 
2012/07/06 15:49:33 INFO  - jmeter.threads.JMeterThread: Thread started: J Meter User 1-2 
2012/07/06 15:49:33 INFO  - jmeter.threads.JMeterThread: Thread finished: J Meter User 1-2 
2012/07/06 15:49:33 INFO  - jmeter.engine.StandardJMeterEngine: Ending thread J Meter User 1-2 
2012/07/06 15:49:33 INFO  - jmeter.threads.JMeterThread: Thread started: J Meter User 1-3 
2012/07/06 15:49:33 INFO  - jmeter.threads.JMeterThread: Thread finished: J Meter User 1-3 
2012/07/06 15:49:33 INFO  - jmeter.engine.StandardJMeterEngine: Ending thread J Meter User 1-3 
2012/07/06 15:49:33 INFO  - jmeter.threads.JMeterThread: Thread started: J Meter User 1-4 
2012/07/06 15:49:33 INFO  - jmeter.threads.JMeterThread: Thread finished: J Meter User 1-4 
2012/07/06 15:49:33 INFO  - jmeter.engine.StandardJMeterEngine: Ending thread J Meter User 1-4 
2012/07/06 15:49:34 INFO  - jmeter.threads.JMeterThread: Thread started: J Meter User 1-5 
2012/07/06 15:49:34 INFO  - jmeter.threads.JMeterThread: Thread finished: J Meter User 1-5 
2012/07/06 15:49:34 INFO  - jmeter.engine.StandardJMeterEngine: Ending thread J Meter User 1-5 
2012/07/06 15:49:34 INFO  - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test 
2012/07/06 15:49:34 INFO  - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*) 
2012/07/06 15:49:34 INFO  - jmeter.engine.StandardJMeterEngine: Test has ended on host null 

有人可以告诉我如何使用 JMeter 访问 cakephp 中的登录表单,以便我可以在我的应用程序中进行负载测试吗?

4

2 回答 2

1

JMeter 日志文件的信息量不是很大,我建议使用View Results Tree侦听器来可视化响应并调试您的脚本,因为它甚至可以呈现 HTML。

有关登录事件的正确模拟,请参阅ASP.NET Login Testing with JMeter指南。您的 cakephp 应用程序中将有不同的动态参数,但是一般方法应该是相同的。

于 2014-12-20T14:56:50.463 回答
0

通常你需要知道你登录的是哪个 url。如果你不知道它在你的页面源form元素中。

并检查表格method类型。通常是POST。当用户登录时,通常会在他/她的身边存储一些东西,比如 cookie,SESSION_ID或者不是我不确定 cakePHP 是如何工作的。

因此,创建一个Http sampler从表单发布到该 url 并提取会话 id 值。

您需要Http Cookied Manager这样才能存储您的 session_id 或您使用的任何标识符,以便以登录用户身份继续。

因此,除非您注销,否则所有具有您之前授权的会话 ID 的请求自然都可以访问受保护的页面。

差不多就这些了,应该不会太难。

于 2012-07-09T14:51:18.947 回答