1

我在 Windows 7 上编写了一个测试计划。我在两台机器上远程启动了测试,都是 Windows Vista。当我尝试在 Linux 上做同样的事情时出现了一个问题——我使用了相同的测试计划。

我可以登录一组用户并模拟他们的行为,但是当我尝试注销他们时,什么也没有发生。

在 Windows 上,它们是注销但 linux 给了我空的响应数据。听众显示绿色状态,所以我对发生的事情感到很困惑。我应该更改属性中的某些内容还是我的脚本有问题?

编辑:

脚本:

  1. 使用授权数据的登录用户。每个用户获得不同的 JSESSIONID。
  2. 使用 Access Log Sampler 模拟用户行为。
  3. 注销用户。

在 Windows 上,一切正常登录和注销。监听器显示:每个样本的样本结果、请求数据和响应数据。

在 linux 上,每个样本的响应数据都是空白的。

windowslinux的示例结果示例

两者的请求数据相同。

linux 的响应数据为空白。

编辑2:

  • 测试计划
    • 设置线程组
      • 清理缓存服务器
      • 使用 JSESSIONID 清理文件
    • 线程组
      • HTTP 请求默认值
      • 登录(只有一次控制器)
      • 访问日志采样器
      • 使用 beanshell 脚本我将 JSESSIONID(cookie 变量)保存到文件
      • 饼干管理器
    • 拆线线程组
      • HTTP 请求默认值
      • 从文件中读取 JSESSIONID
      • 注销所有用户
      • 饼干管理器
    • 结果树
    • 总结报告

必须在访问日志中的所有样本完成后执行注销。这就是为什么我将 JSESSIONID 保存到文件以在线程组之间共享相同的会话。

好的,我以某种方式消除了响应错误。显然linux服务器上的java版本有问题。

当前的问题是,当我在 Linux 上启动远程脚本时,它不遵循重定向。win XP 或 Vista 上的相同脚本遵循重定向,用户退出。经验。

GET connection.rpc?logout=D5D076123FD6CCBF137FE1673F531006 

在 Windows 上,我得到两个重定向,并且用户正在注销。

Thread Name: Logout 1-1
Sample Start: 2013-05-18 13:50:52 CEST
Load time: 15
Latency: 13
Size in bytes: 777
Headers size in bytes: 573
Body size in bytes: 204
Sample Count: 1
Error Count: 0
Response code: 200
Response message: OK

Response headers:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-wkpl-server-name: OnlineRC2
Content-Type: text/html;charset=UTF-8
Content-Language: en-US
Content-Length: 204
Date: Sat, 18 May 2013 11:50:43 GMT


HTTPSampleResult fields:
ContentType: text/html;charset=UTF-8
DataEncoding: UTF-8

Thread Name:
Sample Start: 2013-05-18 13:50:52 CEST
Load time: 13
Latency: 13
Size in bytes: 374
Headers size in bytes: 374
Body size in bytes: 0
Sample Count: 1
Error Count: 0
Response code: 302
Response message: Moved Temporarily

Response headers:
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=6D3F7A3774ABB1411A5F8E1744004A71; Path=/WKPLOnline
CacheControl: no-cache
Pragma: no-cache, no-store
Expires: -1
Location: connection.rpc?logout=BE8C04D8538641675A8BFD2490CDDD4D
Content-Length: 0
Date: Sat, 18 May 2013 11:50:43 GMT

Thread Name: Logout 1-1
HTTPSampleResult fields:
ContentType: 
DataEncoding: null

Sample Start: 2013-05-18 13:50:52 CEST
Load time: 2
Latency: 2
Size in bytes: 403
Headers size in bytes: 199
Body size in bytes: 204
Sample Count: 1
Error Count: 0
Response code: 200
Response message: OK

Response headers:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-wkpl-server-name: OnlineRC2
Content-Type: text/html;charset=UTF-8
Content-Language: en-US
Content-Length: 204
Date: Sat, 18 May 2013 11:50:43 GMT


HTTPSampleResult fields:
ContentType: text/html;charset=UTF-8
DataEncoding: UTF-8

在 Linux 上,我没有收到重定向,并且用户没有注销。

Thread Name: Logout 1-1
Sample Start: 2013-05-18 13:51:48 CEST
Load time: 18
Latency: 18
Size in bytes: 264
Headers size in bytes: 243
Body size in bytes: 21
Sample Count: 1
Error Count: 0
Response code: 200
Response message: OK

Response headers:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=D17A4ABCDE7FB90C1DF702BDCB3827D7; Path=/WKPLOnline
CacheControl: no-cache
Pragma: no-cache, no-store
Expires: -1
Content-Length: 21
Date: Sat, 18 May 2013 11:51:53 GMT


HTTPSampleResult fields:
ContentType: 
DataEncoding: null

这很奇怪,因为在授权期间有一些重定向并且 linux 正确执行它们。

4

2 回答 2

0

您应该检查 jmeter 是否正确访问了您在 linux 上的 jsessionid 文件:

  • 检查路径是否正常(否)

  • 检查读取权限

如果您使用分布式测试,问题可能是代理找不到文件或某些文件被另一个代理覆盖

于 2013-05-20T17:01:03.760 回答
0

问题解决了,yupi :) 原来目标服务器已经为某些机器设置了锁。在这样的机器上是 Linux。这就是为什么我不能在单独的线程中记录用户。

因此,如果有人遇到类似的问题(来自一台机器的请求被正确处理,而另一台机器的请求没有得到正确处理),他应该检查他的机器是否有正确的权限,在我的情况下,我需要在测试服务器的 adm.list 中进行正确的输入。

于 2013-05-21T13:24:28.410 回答