Я пытаюсь протестировать веб-API с помощью JMeter.Веб-сервер взаимодействует между JMeter и базой данных.Предполагается, что сервер берет параметры из JSON в HTTP-запросах POST и разбирает их на запросы.
Код веб-сервера в соответствующем контроллере выглядит следующим образом:
[HttpPost]
[Route("my_awesome_route_path")]
public async Task<List<QueryResult>> invoice([FromBody]InvoiceInfo invoiceInfo)
{
query = string.Format("INSERT INTO my_awesome_table (`my`,`awesome`,`columns`) " +
"VALUES ({0},{1},{2});", invoiceinfo.awesomeparam1, ... ,invoiceinfo.awesomeparamn);
noRowsInserted = await db.Database.ExecuteSqlCommandAsync(query);
ИВ моей форме HTTP-запроса JMeter я ввел правильный путь для вышеуказанной функции контроллера.Я оставил вкладки загрузки параметров и файлов пустыми, заполняя вкладку данных тела следующим текстом:
${__FileToString(/my/awesome/file/path${__eval({awesome_json_file_name_with_no_dottxt_in_end_altough_it_has_it})}.txt,,)}
Запуск сервера без данных тела не достигает функции до установленной мной точки останова.Так что я знаю, что маршрут маршрута в порядке.Добавление приведенного выше кода к основным данным приводит к ошибке 415 - Unsupported Media Type.Вот httpsample, предоставленный выходным файлом JMeter:
<httpSample t="8023" it="0" lt="8023" ct="2" ts="1544434665189" s="false" lb="HTTP Request" rc="415" rm="Unsupported Media Type" tn="Thread Group 1-3" dt="text" by="382" sby="281" ng="1" na="1">
<responseHeader class="java.lang.String">HTTP/1.1 415 Unsupported Media Type
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: todays_awesome_date
Content-Length: 103
</responseHeader>
<requestHeader class="java.lang.String">Connection: keep-alive
Content-Length: 37
Content-Type: multipart/form-data; boundary=jBtzRzXGjCNVf_3UH8LfxguE6qR9_xH
Host: awesome_ip_add
User-Agent: Apache-HttpClient/4.5.6 (Java/1.8.0_191)
</requestHeader>
<responseData class="java.lang.String">{"Message":"The request entity's media type 'multipart/form-data' is not supported for this resource.'}</responseData>
<cookies class="java.lang.String"></cookies>
<method class="java.lang.String">POST</method>
<queryString class="java.lang.String">--jBtzRzXGjCNVf_3UH8LfxguE6qR9_xH--
</queryString>
<java.net.URL>awesome_route_path</java.net.URL>
</httpSample>
Проблема также не в синтаксисе sql.Он работал нормально из другой функции в контроллере, когда параметры были переданы через URL.
Я также попытался заполнить загрузку файлов путем к пути и имени параметра, а затем в параметрах, чтобы добавить файл, и он всегда выдаеттот же код ошибки.Я просто хочу, чтобы параметры JSON заполняли аргумент функции, чтобы ее можно было использовать, как показано в коде.Что мне не хватает?Спасибо.