Skip to content

Commit

Permalink
Tests for optional parameters uris, unique
Browse files Browse the repository at this point in the history
  • Loading branch information
lastmheart authored Mar 30, 2023
1 parent 994a294 commit 497cf8a
Showing 1 changed file with 252 additions and 3 deletions.
255 changes: 252 additions & 3 deletions postman/ewm-stat-service.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,260 @@
{
"info": {
"_postman_id": "144d1ccf-999b-45ac-a135-fc64e981b034",
"name": "stats-svc tests",
"_postman_id": "2727ee6b-c606-49ec-9d4b-549c21dbe7ae",
"name": "Tests for detatched stats service",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "23073145"
},
"item": [
{
"name": "Получение статистики по посещениям. (Тест на опциональность параметра uris)",
"event": [
{
"listen": "prerequest",
"script": {
"exec": [
"const main = async () => {\r",
" const api = new API(pm);\r",
" const rnd = new RandomUtils();\r",
"\r",
" try { \r",
" pm.collectionVariables.set(\"uri\", '/events'); \r",
" let post1 = rnd.getPost();\r",
" let post2 = rnd.getPost();\r",
" post1['uri'] = '/events';\r",
" post2['uri'] = '/events/5';\r",
" await api.addPost(post1);\r",
" await api.addPost(post2);\r",
"\r",
" let source = await api.getPosts(['/events']);\r",
" pm.collectionVariables.set('source', source);\r",
" \r",
" } catch(err) {\r",
" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",
" }\r",
"};\r",
"\r",
"const interval = setInterval(() => {}, 1000);\r",
"\r",
"setTimeout(async () => \r",
" {\r",
" try {\r",
" await main();\r",
" } catch (e) {\r",
" console.error(e);\r",
" } finally {\r",
" clearInterval(interval);\r",
" }\r",
" }, \r",
" 100 \r",
");"
],
"type": "text/javascript"
}
},
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Ответ должен содержать код статуса 200 и данные в формате json при запросе без опционального параметра uris\", function () {\r",
" pm.response.to.be.ok; \r",
" pm.response.to.be.withBody;\r",
" pm.response.to.be.json;\r",
"});\r",
"\r",
"const target = pm.response.json();\r",
"const source = pm.collectionVariables.get('source');\r",
"\r",
"pm.test(\"При запросе по конкретному uris должны получить 1 запись\", function () {\r",
" pm.expect(source.length).to.equal(1);\r",
"});\r",
"\r",
"pm.test(\"При запросе без uris должны получить больше 1 записи\", function () {\r",
" pm.expect(target.length).to.be.above(1);\r",
"});\r",
"\r",
"pm.test(\"Посты должны содержать поля: app, uri, hits\", function () {\r",
" pm.expect(target[0]).to.have.all.keys('app', 'uri', 'hits');\r",
" pm.expect(target[1]).to.have.all.keys('app', 'uri', 'hits');\r",
" pm.expect(source[0]).to.have.all.keys('app', 'uri', 'hits');\r",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/stats?start=2020-05-05 00:00:00&end=2023-05-05 00:00:00&unique=false",
"host": [
"{{baseUrl}}"
],
"path": [
"stats"
],
"query": [
{
"key": "start",
"value": "2020-05-05 00:00:00",
"description": "(Required) Дата и время начала диапазона за который нужно выгрузить статистику (в формате \"yyyy-MM-dd HH:mm:ss\")"
},
{
"key": "end",
"value": "2023-05-05 00:00:00",
"description": "(Required) Дата и время конца диапазона за который нужно выгрузить статистику (в формате \"yyyy-MM-dd HH:mm:ss\")"
},
{
"key": "uris",
"value": "{{uri}}",
"description": "Список uri для которых нужно выгрузить статистику",
"disabled": true
},
{
"key": "uris",
"value": "aliqua o",
"description": "Список uri для которых нужно выгрузить статистику",
"disabled": true
},
{
"key": "unique",
"value": "false",
"description": "Нужно ли учитывать только уникальные посещения (только с уникальным ip)"
}
]
}
},
"response": []
},
{
"name": "Получение статистики по посещениям. (Тест на опциональность и работу параметра unique)",
"event": [
{
"listen": "prerequest",
"script": {
"exec": [
"const main = async () => {\r",
" const api = new API(pm);\r",
" const rnd = new RandomUtils();\r",
"\r",
" try { \r",
" pm.collectionVariables.set(\"uri\", '/events'); \r",
" let post = rnd.getPost();\r",
" post['uri'] = '/events';\r",
" await api.addPost(post);\r",
" await api.addPost(post);\r",
" await api.addPost(post);\r",
" \r",
" let source = await api.getPosts(['/events']);\r",
" pm.collectionVariables.set('source', source);\r",
"\r",
" } catch(err) {\r",
" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",
" }\r",
"};\r",
"\r",
"const interval = setInterval(() => {}, 1000);\r",
"\r",
"setTimeout(async () => \r",
" {\r",
" try {\r",
" await main();\r",
" } catch (e) {\r",
" console.error(e);\r",
" } finally {\r",
" clearInterval(interval);\r",
" }\r",
" }, \r",
" 100 \r",
");"
],
"type": "text/javascript"
}
},
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Ответ должен содержать код статуса 200 и данные в формате json при запросе без опционального параметра unique\", function () {\r",
" pm.response.to.be.ok; \r",
" pm.response.to.be.withBody;\r",
" pm.response.to.be.json;\r",
"});\r",
"\r",
"const target = pm.response.json()[0];\r",
"const source = pm.collectionVariables.get('source')[0];\r",
"\r",
"pm.test(\"При запросе с unique==true должен быть всего 1 уникальный запрос\", function () {\r",
" pm.expect(target.hits).to.equal(1);\r",
"});\r",
"\r",
"pm.test(\"При запросе без uniqre должны получить минимум 3 запроса(поскольку делали 3)\", function () {\r",
" pm.expect(source.hits).to.be.above(2);\r",
"});\r",
"\r",
"pm.test(\"Посты должны содержать поля: app, uri, hits\", function () {\r",
" pm.expect(target).to.have.all.keys('app', 'uri', 'hits');\r",
" pm.expect(source).to.have.all.keys('app', 'uri', 'hits');\r",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/stats?start=2020-05-05 00:00:00&end=2023-05-05 00:00:00&uris={{uri}}&unique=true",
"host": [
"{{baseUrl}}"
],
"path": [
"stats"
],
"query": [
{
"key": "start",
"value": "2020-05-05 00:00:00",
"description": "(Required) Дата и время начала диапазона за который нужно выгрузить статистику (в формате \"yyyy-MM-dd HH:mm:ss\")"
},
{
"key": "end",
"value": "2023-05-05 00:00:00",
"description": "(Required) Дата и время конца диапазона за который нужно выгрузить статистику (в формате \"yyyy-MM-dd HH:mm:ss\")"
},
{
"key": "uris",
"value": "{{uri}}",
"description": "Список uri для которых нужно выгрузить статистику"
},
{
"key": "uris",
"value": "aliqua o",
"description": "Список uri для которых нужно выгрузить статистику",
"disabled": true
},
{
"key": "unique",
"value": "true",
"description": "Нужно ли учитывать только уникальные посещения (только с уникальным ip)"
}
]
}
},
"response": []
},
{
"name": "Тест корреткной работы сохранения и просмотра количества просмотров",
"event": [
Expand Down Expand Up @@ -218,7 +467,7 @@
" return {",
" app: \"ewm-main-service\",",
" uri: \"/events/\" + pm.variables.replaceIn('{{$randomInt}}'),",
" ip: pm.variables.replaceIn('{{$randomIP}}'),",
" ip: '121.0.0.1',",
" timestamp: this.getPastDateTime()",
" }",
" }",
Expand Down

0 comments on commit 497cf8a

Please sign in to comment.