lastsprint / mocker Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Добавить флаг isOnly:Bool
в мок. Если флаг true
то из всей группы возвращать только этот маковый файл.
Например, вот так
{
"count": 0,
"offer_id": "{value}"
}
Было бы супер иметь возможность получить n ошибок, а на n+1 раз успешный ответ
Пытаюсь собрать моки используя как кэширующий прокси.
POST /api/v1/muv/public/mobile_versions HTTP/1.1
Host: pre-tochka15.bank24.int:443
User-Agent: Tochka/1.0.0 (com.tochka.oneandhalf; build:34; iOS 13.3.0) Alamofire/4.9.1
Transfer-Encoding: chunked
Accept: application/json
Accept-Encoding: gzip;q=1.0, compress;q=0.5
Accept-Language: en;q=1.0, ru-RU;q=0.9
Connection: keep-alive
Content-Type: application/json
X-Client-Time: 2020-03-05T11:14:34+05:00
X-Device-Id: 6376D671-4F33-46E1-B887-BD6179FA5D84
X-Device-Locale: en
X-Device-Preferred-Languages: en,ru-RU
X-Screen-Resolution: 375.0x667.0
{"jsonrpc":"2.0","params":{"platform":"ios","version":"1.0.0","channel":"Tochka 1.5"},"id":"D3A6B6D4-9E8F-481C-BE94-73E3C6D7FB58","method":"check"}
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 05 Mar 2020 06:14:34 GMT
Content-Type: application/json
Transfer-Encoding: chunked
X-Request-Id: pre-ngs-bank202-dcdp.bank24.int-454495846595a7fa5f0a5b475a30939e
Content-Encoding: gzip
X-Frame-Options: SAMEORIGIN
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET
Connection: keep-alive
{"id":"D3A6B6D4-9E8F-481C-BE94-73E3C6D7FB58","jsonrpc":"2.0","result":{
"title": null,
"description": null,
"need_hard_update": false,
"need_soft_update": false
}}
В логе вижу ошибку
Failed to obtain reader, failed to marshal fields to JSON, json: unsupported type: func() (io.ReadCloser, error)
/api/v1/muv/public/mobile_versions
Было бы здорово, если у мокера была функция, которая бы позволяла получить путь до картинги без авторизации и использовать этот URL в ответах мокера.
Например, у меня есть картинка, я её загружаю в мокер и она имеет адрес:
https://r2.mocker.site.ru/files/android/memes/mem1.jpg.
После, где-нибудь в ответах мокера, я бы использовал эту ссылку на картинку:
"url": "/site/v1/new/mobile-images",
"method": "GET",
"statusCode": 200,
"response": {
"android": {
"name": "mem1",
"url": "https://r2.mocker.site.ru/files/android/memes/mem1.jpg"
}
}
}```
Добавить флаг isDisabled: Bool
в мок. Если этот флаг false
или nil
, то мок участвует в выдаче. А если флаг true
, то мок не участвует в выдаче
Если одно из полей содержит парные фигурные скобки, то в ответе будет только соответствующий респонс данному моку независимо от фактического реквеста.
Например, в моке есть конфигурация
"request": {
"comment":"1",
"order_id" : "45139934",
"rating":3
},
"response": {
"error_message": "Первый тип ошибки"
}
и второй вариант
"request": {
"comment":"{}",
"order_id" : "45139934",
"rating":3
},
"response": {
"error_message": "Второй тип ошибки"
}
Если остальные значения мокового реквеста (поля order_id и rating) будут совпадать с фактическим реквестом, тогда независимо от значения comment реквеста в респонсе всегда будем получать "Второй тип ошибки"
, так как comment в моковых данных содержит {}
.
Также хотелось бы иметь возможность дизейбла парсинга шаблонов по {} в строках значений моков, например, пусть по умолчанию они будут включены, но можно также выключить - это будет очень полезно для возможности моков graphQL-запросов (с ограничениями). Например:
"request": {
"query":"{users{_id name}}"
},
"response": {
"data": "Success"
}
и
"request": {
"query":"{users{_id name lastname}}"
},
"response": {
"data": "Not found"
}
Сейчас это работать не будет: из-за наличия парных скобок {} будем безусловно возвращаться мок респонса, имя файла которого будет найдено первым (независимо от значения query)
Сейчас можно в зависимости от того, какое body отправили, показывать соответствующий мок.
Можно было бы сделать тоже самое, но считывать значение с хедера запроса.
Пример:
{
"url": "/auth/logout",
"method": "POST",
"statusCode": 200,
"isExcludedFromIteration": true,
"requestHeaders": {
"Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiZXhwIjoxNTE2MjM5MDIyfQ"
},
"response": {
"message": "Успех"
}
}
Этот мок будет возвращаться, только если в запросе будет соответствующий хедер.
Пример урла some/path/{type}?param={param}.
Если убрать {type} и подставить конкретное значение, то работает правильно
Ожидается что-то типа No-Content
Было бы удобно иметь возможность через хедер настраивать стоит ли в режиме проксирования добавлять новые моки на запросы, для которых моки уже есть, или нужно записывать только новые ответы.
Необходимо сделать аккаунт для стажеров QA для выполнения задания по мокеру, чтобы не было возможности списать существующие моки или их видоизменять
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.