具有依赖项的Maven/Java项目:
<dependencies>
<dependency>
<groupId>net.lightbody.bmp</groupId>
<artifactId>browsermob-core</artifactId>
<version>2.1.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.4</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.7.1</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
</dependencies>
代码:
公共类bmp_Selenium{
@Test
public void test() throws Exception {
String chromedriverPath = System.getProperty("user.dir") + "/chromedriver";
System.setProperty("webdriver.chrome.driver", chromedriverPath);
BrowserMobProxy proxy = getProxyServer(); //getting browsermob proxy
System.out.println("BrowserMob Proxy running on port: " + proxy.getPort());
Proxy seleniumProxy = getSeleniumProxy(proxy);
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);
WebDriver driver = new ChromeDriver(capabilities);
proxy.newHar("foo");
driver.get("http://www.google.com");
Har har = proxy.getHar();
// Write HAR Data in a File
String harFilePath = System.getProperty("user.dir") + "/hars/ww.har";
File harFile = new File(harFilePath);
try {
har.writeTo(harFile);
} catch (IOException ex) {
System.out.println (ex.toString());
System.out.println("Could not find file " + harFilePath);
}
List<HarEntry> entries = har.getLog().getEntries();
for (HarEntry entry : entries) {
System.out.println("Request URL: " + entry.getRequest().getUrl());
System.out.println("Entry response status: " + entry.getResponse().getStatus());
System.out.println("Entry response text: " + entry.getResponse().getStatusText());
}
proxy.stop();
driver.quit();
}
public Proxy getSeleniumProxy(BrowserMobProxy proxyServer) {
Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxyServer);
try {
String hostIp = Inet4Address.getLocalHost().getHostAddress();
seleniumProxy.setHttpProxy(hostIp + ":" + proxyServer.getPort());
seleniumProxy.setSslProxy(hostIp + ":" + proxyServer.getPort());
} catch (UnknownHostException e) {
e.printStackTrace();
Assert.fail("invalid Host Address");
}
return seleniumProxy;
}
public BrowserMobProxy getProxyServer() {
BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.setTrustAllServers(true);
proxy.setHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);
proxy.start();
return proxy;
}
}
控制台输出:
BrowserMob代理运行在端口:57547上启动chrome driver 2 . 33 . 506106(8 a 06 c 39 c 4582 fbfbfbab 6966 db B1 c 38 a 9173 BF B1 a 2)在端口47157上只允许本地连接。2017年11月30日下午4:48:33 org . open QA . selenium . remote . protocol handshake create session信息:检测到的方言:OSS请求URL:http://www.google.com/条目响应状态:0条目响应文本:请求URL:http://www.google.com/条目响应状态:0条目响应文本:请求URL:http://www.google.com/条目响应状态:0条目响应文本:请求URL:http://www.google.com/条目响应状态:0条目响应文本:
Har文件:
json prettyprint-override">{
"log": {
"version": "1.2",
"creator": {
"name": "BrowserMob Proxy",
"version": "2.1.4",
"comment": ""
},
"pages": [{
"id": "foo",
"startedDateTime": "2017-11-30T21:48:34.064Z",
"title": "foo",
"pageTimings": {
"comment": ""
},
"comment": ""
}
],
"entries": [{
"pageref": "foo",
"startedDateTime": "2017-11-30T21:48:34.210Z",
"request": {
"method": "GET",
"url": "http://www.google.com/",
"httpVersion": "HTTP/1.1",
"cookies": [
],
"headers": [
],
"queryString": [
],
"headersSize": 417,
"bodySize": 0,
"comment": ""
},
"response": {
"status": 0,
"statusText": "",
"httpVersion": "unknown",
"cookies": [
],
"headers": [
],
"content": {
"size": 0,
"mimeType": "",
"comment": ""
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1,
"comment": "",
"_error": "No response received"
},
"cache": {},
"timings": {
"comment": "",
"send": 0,
"wait": 0,
"receive": 0,
"ssl": -1,
"connect": -1,
"blocked": 0,
"dns": -1
},
"comment": "",
"time": 0
}, {
"pageref": "foo",
"startedDateTime": "2017-11-30T21:48:34.224Z",
"request": {
"method": "GET",
"url": "http://www.google.com/",
"httpVersion": "HTTP/1.1",
"cookies": [
],
"headers": [
],
"queryString": [
],
"headersSize": 417,
"bodySize": 0,
"comment": ""
},
"response": {
"status": 0,
"statusText": "",
"httpVersion": "unknown",
"cookies": [
],
"headers": [
],
"content": {
"size": 0,
"mimeType": "",
"comment": ""
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1,
"comment": "",
"_error": "No response received"
},
"cache": {},
"timings": {
"comment": "",
"send": 0,
"wait": 0,
"receive": 0,
"ssl": -1,
"connect": -1,
"blocked": 0,
"dns": -1
},
"comment": "",
"time": 0
}, {
"pageref": "foo",
"startedDateTime": "2017-11-30T21:48:34.225Z",
"request": {
"method": "GET",
"url": "http://www.google.com/",
"httpVersion": "HTTP/1.1",
"cookies": [
],
"headers": [
],
"queryString": [
],
"headersSize": 417,
"bodySize": 0,
"comment": ""
},
"response": {
"status": 0,
"statusText": "",
"httpVersion": "unknown",
"cookies": [
],
"headers": [
],
"content": {
"size": 0,
"mimeType": "",
"comment": ""
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1,
"comment": "",
"_error": "No response received"
},
"cache": {},
"timings": {
"comment": "",
"send": 0,
"wait": 0,
"receive": 0,
"ssl": -1,
"connect": -1,
"blocked": 0,
"dns": -1
},
"comment": "",
"time": 0
}, {
"pageref": "foo",
"startedDateTime": "2017-11-30T21:48:34.327Z",
"request": {
"method": "GET",
"url": "http://www.google.com/",
"httpVersion": "HTTP/1.1",
"cookies": [
],
"headers": [
],
"queryString": [
],
"headersSize": 443,
"bodySize": 0,
"comment": ""
},
"response": {
"status": 0,
"statusText": "",
"httpVersion": "unknown",
"cookies": [
],
"headers": [
],
"content": {
"size": 0,
"mimeType": "",
"comment": ""
},
"redirectURL": "",
"headersSize": -1,
"bodySize": -1,
"comment": "",
"_error": "No response received"
},
"cache": {},
"timings": {
"comment": "",
"send": 0,
"wait": 0,
"receive": 0,
"ssl": -1,
"connect": -1,
"blocked": 0,
"dns": -1
},
"comment": "",
"time": 0
}
],
"comment": ""
}
}
根据GitHub用户mediga的建议,修改BMP依赖项解决了问题:
替换此
<dependency>
<groupId>net.lightbody.bmp</groupId>
<artifactId>browsermob-core</artifactId>
<version>2.1.4</version>
<scope>test</scope>
</dependency>
随着
> <dependency>
> <groupId>net.lightbody.bmp</groupId>
> <artifactId>browsermob-core</artifactId>
> <version>2.1.5</version>
> </dependency>
https://github.com/lightbody/browsermob-proxy/issues/689#issuecomment-348620752
问题内容: 具有依赖项的Maven / Java项目: 码: 公共类bmp_Selenium { } 控制台输出: 在端口:57547上运行的BrowserMob代理在端口47157上启动ChromeDriver 2.33.506106(8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2)仅允许本地连接。2017年11月30日下午4:48:33 org.openqa.
下面是关于如何设置messenger机器人的Facebook教程-使用ngrok设置我的webhook。本地测试一切顺利,但在向bot发送消息时仍然没有收到任何响应。 韩国https://ngrok.com/ facebook教程https://developers.facebook.com/docs/messenger-platform/getting-started/quick-start/
我开始在Selenium上写一些测试,并认为如果我能在登录我们的网站时获得性能指标,那就太好了。我遇到了BrowserMob-Proxy。我开始从Lightbody的github页面复制前五行,我已经得到了错误消息:“ProxyServer无法解析为类型”和“代理无法解析为类型”。 谁能告诉我这里还缺什么吗? 这是pom。xml: 在这个类中,我试图让方法“开始”和“结束”(“开始”还没有完成,我
我的服务使用WebApi。它有一个带有GET方法的控制器。当我从客户端调用它并返回未授权的状态代码时,我在HttpResponseMessage中没有得到未授权,而是没有找到。 这是我从客户端调用它的方式: < code >响应的内容: 我在 GetTest() 处放置了一个断点,它在那里停止,所以它到达了控制器方法。 为什么我在客户端中收到“未找到”,而不是“未经授权”?
我使用Jmeter对一个包括web套接字连接的应用程序进行负载测试。 当尝试使用单读取采样器读取帧中的数据时,得到错误响应代码:无响应响应消息:读取超时,未收到响应。 有人能帮我解决这个问题吗? 线程名称:密苏里州TestEnv 1-1样例开始时间:2019-10-09 10:40:43 IST加载时间:1000连接时间:0延迟时间:0大小以字节为单位:0发送字节:0头大小以字节为单位:0主体大小
更新:问题已解决!AJAX可以工作,但我有函数来测试哪个到控制台日志。函数如下: 在WooCommerce的admin order页面(WooCommerce>Orders>Edit)上,我添加了自定义字段,以便向订单添加自定义费用。我跟随本文添加AJAX,但它不起作用。我成功地注册了jQuery脚本并将其排入队列,并且它在大多数情况下都能正常工作,但是我根本没有收到响应。 在admin orde