gpt4 book ai didi

citrus-framework - Citrus Framework - 如何跟踪和打印服务器的响应

转载 作者:行者123 更新时间:2023-12-02 03:50:55 25 4
gpt4 key购买 nike

我正在使用 CitrusFramework 进行 Rest API 测试。我已经扫描了该方法,但没有得到任何可以打印响应堆栈跟踪的内容。

问候比杜

最佳答案

我假设您想要分析从被测服务器获得的 HTTP 响应的详细信息。

设置 Debug模式

首先,您需要将 Citrus 的日志级别设置为 DEBUG。您可以在 Citrus sample-http 存储库中找到有关如何实现此目的的示例:
https://github.com/christophd/citrus-samples/blob/master/sample-http/src/test/resources/log4j.properties

有两点需要注意:

  1. log4j.logger.com.consol.citrus=DEBUG:将所有 Citrus 类设置为以 Debug模式登录
  2. log4j.appender.out=org.apache.log4j.ConsoleAppender 会将日志附加到控制台日志,因此它会显示在您的控制台中。

除非您的项目中已有 log4j.propertieslog4j.xml,否则您只需从示例中复制 log4j.properties将您的项目添加到 src/test/resources/ 中。
否则,您需要将条目添加到现有的 Log4J 设置中。

可以在 sample-flightbooking 中找到一个不同的更复杂的示例(使用 Log4Js XML 格式):
https://github.com/christophd/citrus-samples/blob/master/sample-flightbooking/src/test/resources/log4j.xml

在日志中查找痕迹

如果您将 Citrus 设置为 DEBUG,那么您会在日志中发现类似于以下内容的内容:

18:10:55,743 DEBUG ingClientInterceptor| Sending Http request message
18:10:55,744 DEBUG Logger.Message_OUT| GET https://jsonplaceholder.typicode.com/posts/1
Accept:text/plain, application/json, application/*+json, */*
Content-Type:text/plain;charset=UTF-8
Content-Length:0


18:10:56,096 DEBUG ingClientInterceptor| Received Http response message
18:10:56,096 DEBUG Logger.Message_IN| HTTP/1.1 200 OK
Date:Mon, 07 Aug 2017 16:10:52 GMT
Content-Type:application/json; charset=utf-8
Transfer-Encoding:chunked
Connection:keep-alive
Set-Cookie:__cfduid=d5ca2a6c467ea8aa495ab766d86e16eef1502122252; expires=Tue, 07-Aug-18 16:10:52 GMT; path=/; domain=.typicode.com; HttpOnly
X-Powered-By:Express
Vary:Accept-Encoding
Access-Control-Allow-Credentials:true
Cache-Control:public, max-age=14400
Pragma:no-cache
Expires:Mon, 07 Aug 2017 20:10:52 GMT
X-Content-Type-Options:nosniff
Etag:W/"124-yiKdLzqO5gfBrJFrcdJ8Yq0LGnU"
Via:1.1 vegur
CF-Cache-Status:HIT
Server:cloudflare-nginx
CF-RAY:38ab822e68527d08-MUC

{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}

如您所见,您将在日志中找到整个 HTTP 跟踪。

如果您需要真正的 HTTP 跟踪,并且不依赖于任何日志框架,那么最可靠的方法是使用 Wireshark 或 TCPMon 等嗅探器工具。我有时使用 TCPMon(即使不再支持)进行调试。

另一种方法是向 HTTP 客户端添加拦截器,如 Citrus documentation 中所述。 。这就是 Citrus 的 LoggingClientInterceptor 记录 HTTP 跟踪的方式,您可以在示例中看到。

关于citrus-framework - Citrus Framework - 如何跟踪和打印服务器的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45498348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com