#java #automation #postman #rest-assured
Вопрос:
Я пишу код, который отправляет запросы POST и ожидает ОТВЕТА от сервера.
Мне нужно измерить точное время, необходимое для обработки информации на сервере (время отклика). Я заметил, что когда я отправляю запрос на сервер, используя rest assured, время там намного больше, чем время, которое я получаю через ПОЧТАЛЬОНА
Поэтому мой вопрос в том, как я могу наиболее точно измерить время и быть близким к результатам, которые я получаю через ПОЧТАЛЬОНА
Я несколько дней искал в Интернете и не нашел решения
Заранее спасибо всем помощникам!!!
Редактировать
Я использую надежную библиотеку, и у меня есть функция, которая выполняет для меня операцию POST
public static Response postSubTotal (String var_baseURI, String FileLocation){
RestAssured.baseURI =var_baseURI;
RequestSpecification request = RestAssured.given();
// Add a header stating the Request body is a JSON
request.header("Content-Type", "application/json");
// Add the Json to the body of the request
request.body(BaseJSON.getString(FileLocation));
// Post the request and check the response
Response response = request.post("/Transaction/SubTotal");
return response;
Мне нужно вынуть из ответа точное время .
итак, как мне использовать фильтр для этого
, что мне нужно отправить в эту функцию, чтобы отфильтровать время обработки от общего времени, чтобы у меня осталось только время отклика
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
}
Комментарии:
1. Почтальон предоставляет некоторые показатели по сети и первому байту. Вы можете ознакомиться с документацией.
Ответ №1:
Если вам нужно измерить время, проведенное в JVM, вы можете использовать фильтр для регистрации этой информации:
Фильтр-это объект, который выполняет задачи фильтрации либо по запросу к ресурсу (сервлету или статическому содержимому), либо по ответу от ресурса, либо по обоим. Фильтры выполняют фильтрацию в методе doFilter. Каждый фильтр имеет доступ к объекту FilterConfig, из которого он может получить параметры инициализации, и ссылку на ServletContext, который он может использовать, например, для загрузки ресурсов, необходимых для задач фильтрации. Фильтры настраиваются в дескрипторе развертывания веб-приложения. Примерами, которые были определены для этого проекта, являются:
- Фильтры аутентификации
- Фильтры ведения журнала и аудита
- Фильтры преобразования изображений
- Фильтры сжатия данных
- Фильтры шифрования
- Маркирующие фильтры
- Фильтры, запускающие события доступа к ресурсам
- Фильтры XSL/T
- Цепной фильтр Mime-типа
Этот вид фильтра будет измерять время между полученным запросом и построенным ответом. Он не учитывает время, проведенное в сети, которое не находится непосредственно под вашим контролем, потому что на него влияет подключение к Интернету.
Фильтр позволяет централизовать журнал времени, проведенного на сервере, для каждого входящего запроса.
Основным примером фильтра, регистрирующего время, может быть
public class LogTimeFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
long before = System.currentTimeMillis();
chain.doFilter(request, response);
long after = System.currentTimeMillis();
long elapsedTime = after - before;
// Do what you need with the elapsed time
}
}
Комментарии:
1. Действительно спасибо за ответ! Похоже, это то направление, в котором мне нужно двигаться, но я был бы рад, если бы вы помогли мне и объяснили мне . Как мне отфильтровать нужное мне время( получить время, как в «почтальоне»), потому что из всего, что я видел в Интернете, я не смог найти ничего, что могло бы это объяснить
2. @MichaelYav Я обновил ответ с помощью базового примера