我被要求测试一个应用程序,该应用程序的URL以http://user:pass@host:port/path的身份提供给我。
我知道这是HTTP基本认证,RFC 2396(第3.2.2节)不建议使用user:pass
。
我还希望应用程序能够在标题中毫无问题地获得授权。
但是,我决定尝试使JMeter达到我一直使用的格式的URL(只是尝试)。
遇到两个障碍。
首先,尽管可以将用户名和密码提供给HTTP授权管理器,但似乎没有设置允许在管理器或采样器中的任何位置将其作为授权推送到URL。
第二,HTTP采样器(包括请求默认值)没有明确地获取用户信息/权限。
因此,唯一可以尝试的地方似乎是在“ HTTP示例(或默认值)”域中。
但是,域最终会传递给URL(protocol, domain, getPort(), pathAndQuery.toString())
构造函数。
在域中添加user:pass@host
会在以后导致解析异常,因为构造函数将:
解释为试图提供IPv6地址,因此将主机括在方括号中(即,字面意义上将域转换为[user:pass@host]
)。
那么,最重要的是,我没有考虑过任何可以使用JMeter接受user:pass@host
URL的方法(除了破解代码或引起JMeter问题)?
如前所述,RFC不建议这样做,因此最好让这种古老的Internet漏洞悄悄地消逝。但是好奇心会迫使我们。
答案 0 :(得分:0)
有可能,但是您需要将整个private void MouseClicked(object sender, EventHandler e)
{
if(sender is Button)
{
//do something
}
if (sender is Label)
{
//do something else
}
/*
* .
* .
* .
*
*/
}
内容放入HTTP Request采样器的“路径”部分
这将导致您正在寻找的请求(可以使用View Results Tree侦听器进行检查):
但是,如果您需要访问受basic HTTP authentication限制的资源-建议的绕过资源的方法是使用HTTP Authorization Manager