【问题标题】:Server side automation testing using Java and JSON requests使用 Java 和 JSON 请求的服务器端自动化测试
【发布时间】:2015-02-15 03:03:06
【问题描述】:

我之前没有做过自动化测试,只有 jUnit 测试,现在我有一个要求。但是自动化不是在前端使用 Selenium 左右,它比使用 JSON 请求更简单。我了解其中的原理,但不知道如何以正确的方式进行编程。我必须向服务器发出一些付款请求,看看响应是否正确,不仅仅是代码,还有响应的详细信息。

到目前为止,我已经完成了向服务器发出请求的部分,现在当我收到响应时,比较或检查它的最佳方法是什么,或者我如何查看一切是否正确?你能指出我正确的方向吗?

【问题讨论】:

  • 听起来就像您正在尝试自动化 RESTful API 的功能测试(例如,考虑到您与 Selenium 的比较)。如果是这样,如果您还没有考虑过 SoapUI,请查看 SoapUI。它可以发送静态或参数化请求并检查响应的每个细节,而几乎不需要脚本;如果您有更复杂的需求,您可以在 Groovy 中疯狂编写脚本。您也可以使用通常用于单元或集成测试的测试框架(例如 JUnit),但我发现 SoapUI 更适合这类事情。
  • SoapUI 是一个应用程序,但我确实需要为整个团队做这个测试,所以一个应用程序对于单独或一次性测试来说是个好主意,但是我们的 API 会增长,所有的人们应该能够添加/修改功能。无论如何,谢谢。
  • 是的,我已经使用 SoapUI 的开源版本做到了这一点——经过数千次功能测试。 SoapUI 可能不是/最终不是您喜欢的工具,但它足以为您的整个团队进行此类测试并进行持续集成;作为一名 Java 开发人员,您实际上拥有我作为 .NET 开发人员从未有过的优势——一流的 IDE 集成(用于 IntelliJ IDEA、Eclipse 和 NetBeans)。
  • 好的,谢谢,我试试

标签: java testing automation automated-tests


【解决方案1】:

如果我正确理解您的要求,那么:

  1. 首先检查请求和响应的格式是什么。
  2. 正如您所说的 JSON,您可以使用 JAVA 轻松完成此操作。使用 java 包 - org.json.JSONObject 创建请求并验证 JSON 格式。
  3. 您可以通过这个简单的代码发送请求并获得响应:

            CloseableHttpClient httpclient = HttpClients.createDefault();
            HttpGet GetRequest = new HttpGet("ServerURL");
            CloseableHttpResponse response = httpclient.execute(GetRequest);
    

    使用包:import org.apache.http.impl.client.CloseableHttpClient;

    您可能还需要下载 apache - httpClient jar。

  4. 收到回复后,请使用阅读器阅读,例如:

    BufferedReader rd = new BufferedReader( new  InputStreamReader(response.getEntity().getContent()));
    
  5. 将此响应转换为如下字符串:

        String line = "";
        StringBuffer result = new StringBuffer();
        while ((line = rd.readLine()) != null)
        {
            result.append(line);
        }
    
  6. 最后你得到了字符串响应,这可以通过使用 java 包 - org.json.JSONObject 进一步分析。分析 JSON 响应,如:

    JSONObject js = new JSONObject(hudsonRTBObjectJSONString);
    

希望对你有帮助

【讨论】:

  • 好的,这只是我可以处理的一部分,但我的意思是验证响应,以便更好地理解:付款是否正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多