您好,尝试使用 browsermob 代理 + selenium 测试框架在 HTTP POST 请求中捕获实际的 POST 数据。所以基本上我正在使用 selenium 运行自动化测试,我想在测试期间捕获键/值对和 HTTP POST 请求的实际 POST 数据。使用以下逻辑,我只能捕获 POST 标头的键/值对,但不能捕获实际的 POST 数据(也就是表单字段 id 值)。有没有办法实际捕获 POSTDATA(如嗅探应用程序,如 Firefox 中的篡改/实时标头)?
ProxyServer proxyServer = null;
proxyServer = new ProxyServer(9101);
proxyServer.start();
proxyServer.setCaptureContent(true);
proxyServer.setCaptureHeaders(true);
Proxy proxy = proxyServer.seleniumProxy();
proxy.setHttpProxy("localhost:9101");
//selenium test config code, omitted for brevity
proxyServer.addRequestInterceptor(new HttpRequestInterceptor() {
public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
Header[] headers = request.getAllHeaders();
System.out.println("\nRequest Headers\n\n");
for(Header h : headers) {
System.out.println("Key: " + h.getName() + " | Value: " + h.getValue());
}
}
});
我读到但无法开始工作的另一种方法是将 browsermob 代理服务器中的以下标志配置为 true:
proxyServer.setCaptureContent(true);
proxyServer.setCaptureHeaders(true);
然后输出实际的 HAR 文件:
Har har = proxyServer.getHar();
Date date = new Date();
har.writeTo(new File("c:\\tmp\\har_" + date.getTime()));
要查看响应的键/值对、POST 数据和实际内容……但是当我解析 HAR 文件时……我只能再次看到 POST 标头的键/值对……没有 POST 数据。 ..没有回应内容。我只对实际的 POST 数据感兴趣。