在JAVA上从浏览器读取GET/POST请求

在JAVA上从浏览器读取GET/POST请求,java,selenium-webdriver,Java,Selenium Webdriver,我需要找到一种从WEB浏览器(网络)读取GET/POST请求的方法,并检索状态、域、大小、IP和最重要的时间线等信息 其主要目的是测量网页上每个操作后的请求数及其执行时间。另外,这将帮助我在我想要在网页上执行任何操作之前了解是否有任何请求(AJAX/JavaScript)正在执行 你能帮我解决这个问题吗 Chrome自带开发工具。只需点击“F12”。 Postman,它对于测试web服务和API非常有用 Chrome自带开发工具。只需点击“F12”。 Postman,它对于测试web服务和

我需要找到一种从WEB浏览器(网络)读取GET/POST请求的方法,并检索状态、域、大小、IP和最重要的时间线等信息

其主要目的是测量网页上每个操作后的请求数及其执行时间。另外,这将帮助我在我想要在网页上执行任何操作之前了解是否有任何请求(AJAX/JavaScript)正在执行

你能帮我解决这个问题吗

  • Chrome自带开发工具。只需点击“F12”。

  • Postman,它对于测试web服务和API非常有用

  • Chrome自带开发工具。只需点击“F12”。

  • Postman,它对于测试web服务和API非常有用


  • 假设您不想将自己绑定到特定的浏览器(通过插件或特定的开发工具工具栏),需要从交互用户事件中捕获响应(即,通过在真实浏览器中模拟使用网站,而不是动态创建HTTP调用),并且需要自动执行此操作,那么代理服务器就是一个不错的选择

    类似的东西可以设置为一个流量。它可以捕获所有请求和响应的全部内容,并让您生成一个(跨浏览器),然后通过API持久化、可视化或查询

    显然,您可以将其自动化,安排Selenium测试运行,或者使用自己的Java代码生成自己的自定义度量;将HAR导入一个JSON精通的数据库中进行查询(比如Elasticsearch)和可视化,或者只保存HAR进行离线查询和差异化

    中的一些示例代码:

    […]
    委托书:newHar(“测试”);
    HttpGet=newhttpget(getLocalServerHostnameAndPort()+“/a.txt?foo=bar&a=1%262”);
    client.execute(get);
    Har=proxy.getHar();
    HarLog log=har.getLog();
    列表条目=log.getEntries();
    HarEntry=entries.get(0);
    HarRequest req=entry.getRequest();
    [...]
    

    或者,您可以通过以字符串形式获取HAR并粘贴到中来可视化输出。这将为您提供与“网络”选项卡非常相似的内容,但格式更易于导出、截图和打印。

    假设您不想将自己绑定到特定浏览器(通过插件或特定开发工具工具栏),则需要捕获交互用户事件的响应(即,通过在真实浏览器中模拟使用网站,而不是动态创建HTTP调用),并且需要自动执行此操作,那么代理服务器就是最佳选择

    类似的东西可以设置为流量。它可以捕获所有请求和响应的全部内容,并让您生成一个(跨浏览器),然后通过API进行持久化、可视化或查询

    显然,您可以将其自动化,安排Selenium测试运行,或者使用您自己的Java代码生成您自己的自定义度量;将HAR导入一个熟悉JSON的数据库进行查询(比如Elasticsearch)和可视化,或者只保存HAR以供离线查询和扩散

    中的一些示例代码:

    […]
    委托书:newHar(“测试”);
    HttpGet=newhttpget(getLocalServerHostnameAndPort()+“/a.txt?foo=bar&a=1%262”);
    client.execute(get);
    Har=proxy.getHar();
    HarLog log=har.getLog();
    列表条目=log.getEntries();
    HarEntry=entries.get(0);
    HarRequest req=entry.getRequest();
    [...]
    

    或者,您可以通过以字符串形式获取HAR并粘贴到中来可视化输出。这将为您提供与“网络”选项卡非常相似的内容,但格式更易于导出、截图和打印。

    我不确定您是否100%清楚,所以让我问几个问题-您是否查看了Ht您正在使用的tpServletRequest(因为您说您正在Java上读取请求,这意味着您正在后端使用Java)?或者您在这里混淆了Java和JavaScript?我在Java上使用Selenium framework创建测试用例,因此我没有使用任何HttpServletRequest。我正在为web应用程序进行黑盒测试,因此我需要跟踪哪些GET或POST请求被发送到服务器,并在执行某些操作(单击、选择等)后测量响应时间从浏览器。你看了吗?这只是在后台收集浏览器指标,并实时提供我需要的信息报告:)我不确定你是否100%清楚,所以让我问几个问题-你看了你正在使用的HttpServletRequest吗(因为您说您正在读取Java上的请求,这意味着您正在后端使用Java)?或者您在这里混淆了Java和JavaScript?我在Java上使用Selenium framework创建测试用例,因此我没有使用任何HttpServletRequest。我正在为web应用程序进行黑盒测试,因此我需要跟踪哪些GET或POST请求被发送到服务器,并在执行某些操作(单击、选择等)后测量响应时间从浏览器。你看了吗?这只是在后台收集浏览器指标,并实时提供我需要的信息报告:)
    [...]
    proxy.newHar("Test");
    
    HttpGet get = new HttpGet(getLocalServerHostnameAndPort() + "/a.txt?foo=bar&a=1%262");
    client.execute(get);
    
    Har har = proxy.getHar();
    HarLog log = har.getLog();
    
    List<HarEntry> entries = log.getEntries();
    
    HarEntry entry = entries.get(0);
    HarRequest req = entry.getRequest();
    [...]