Prism End-to-End Contract Testing
Last updated
Was this helpful?
Last updated
Was this helpful?
āļāļāđāļĨāđāļē middleware āļāļąāļ§āļāļķāļāļāļĩāđāļāļ°āļĄāļēāļāđāļ§āļĒāđāļĢāļ·āđāļāļ quality āđāļŦāđ product āđāļĢāļēāļĢāļąāļāļĐāļē quality āđāļŦāđāļāļĒāļđāđāđāļāđāļāļĒāđāļēāļāļŠāļĄāđāļģāđāļŠāļĄāļ āđāļĄāđāļāļĨāļēāļāļāļķāđāļ production āđāļāļāļĒāđāļēāļāļāļĨāļēāļāđ
Prism āđāļāđāļāļŦāļāļķāđāļāđāļ Product āļāļāļ Stoplight āļāļĩāđāļāļąāļāļāļē collaborative platform āļāļ°āļāļĢāļąāļ Product āļāļāļāđāļāđāļēāļāđāļĄāļĩāļŦāļĨāļēāļĒāļāļąāļ§ āļĨāļāļāđāļāđāļēāđāļāļāļđāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļāļāđāļāđāļāļēāļāđāļ§āđāļāļŦāļĨāļąāļāđāļāđāļēāđāļāđāđāļĨāļĒ https://meta.stoplight.io/
āļāļēāļĄāļāļĩāđāđāļāđāļēāđāļāļĐāļāļēāļāļĢāļąāļ Prism āļŠāļēāļĄāļēāļĢāļāļāļģ API Mock Server āđāļĨāļ° Contract Testing āđāļāđ āđāļāđāđāļāļāļāļāļ§āļēāļĄāļāļĩāđāļāļ°āđāļĨāđāļēāļāļķāļāđāļāđ Contract Test āļāļ°āļāļĢāļąāļ āđāļ§āļĄāļĩāđāļāļāļēāļŠāļāļ°āļĄāļēāđāļĨāđāļēāļāļēāļĢāļāļģ API Mock āđāļŦāđāļāđāļēāļāļāļąāļāļāļĢāļąāļ
āļāđāļēāđāļāđāļāđāļēāļ "Contract Testing āļāļ·āļāļāļ°āđāļĢāđāļĨāđāļ§" āļāļ°āđāļŦāđāļāļ§āđāļēāļĄāļąāļāđāļāđāļāļēāļāļāļđāđāļāļąāļ API Spec āđāļāļ·āđāļāđāļāļēāđāļ§āļāļĢāļ§āļāļŠāļāļ Response āļāļāļ API āļāļ°āļāļĢāļąāļ
āļāļąāļāļāļąāđāļāđāļāđāļē Prism āđāļāļĩāđāļĒāļāđāļāđāļāļāļāļēāļĢāđāļāđāļāļāļąāļ āđāļāļĒāļāļĩāđāđāļāđāļē Prism āļāđ support API Spec āļāļāļ OpenAPI āļāļĩāđāđāļāđāļ Standard āļāļĩāđāđāļāļĢāđ āļāđāđāļāđāļāļąāļ āļāļąāļāļāļąāđāļāļŠāļīāđāļāļāļĩāđāļāļēāļāđāļĄāđāđāļāđāļāļ·āļāļāđāļāļāļĄāļĩ file .yaml āļŦāļĢāļ·āļ .json āļāļĩāđāđāļāđāļ OpenAPI āļāđāļāļāļāļ°āļāļĢāļąāļ
OpenAPI āļāļ·āđāļāđāļāļīāļĄāļāļ·āļ Swagger Specification āļāļ°āļāļĢāļąāļ āļāđāļēāļāļ°āļāļļāđāļāļāļąāļāļĄāļēāļāļāļķāđāļ
Prism support OpenAPI v2 āļāļąāļ v3 āļāļ°āļāļĢāļąāļ
File *.yaml āļŦāļĢāļ·āļ *.json āļāļĩāđāđāļāđāļ OpenAPI
node.js āđāļĨāļ° npm
Web API āļāļĩāđ Response āđāļāđāļāļēāļĄ spec āļāđāļ 1
āļŦāļĨāļąāļāļāļēāļāļāļīāļāļāļąāđāļāļāđāļ 2 āđāļĨāđāļ§āļāļīāļāļāļąāđāļ prism-cli
āļāļģ spec āļāđāļēāļĒāđ āđāļ§ test āļŠāļąāļāļāļąāļ§āđāļāļĩāļĒāļ§āļāļ
save file āļāļ·āđāļ account.yaml
āđāļāļīāļ Terminal āļāļķāđāļāļĄāļēāļāļĢāļąāļāđāļĨāđāļ§ start Web API āļāļĩāđāđāļĢāļēāļāļģāđāļ§āļāđāļāļāđāļĨāļĒ
āļāļēāļĄāļāđāļ§āļĒ start āđāļāđāļē prism āđāļŦāđāļĄāļēāļāļģāļāļēāļāđāļāđāļ proxy āđāļŦāđāđāļĢāļē format āļāļāļ prism cil āđāļāđāļāđāļāļāļāļĩāđāļāļĢāļąāļ
āđāļĢāļēāļāđāđāļāļāļāļĩāđāļāđāļ§āļĒ file āļāļāļāđāļĢāļē āļāļąāļ Web API āļāļāļāđāļĢāļēāļāļĩāđāļāļģāđāļ§āđ
āļŦāļĨāļąāļāļāļēāļāļāļ enter āđāļĨāđāļ§āđāļāđāļē prism āļāļ°āļāļģāļĨāļāļāļāļąāļ§āđāļāļāđāļāđāļ proxy server āļāļķāđāļāļĄāļēāđāļŦāđāļāļĢāļąāļ defalt āļāļ·āļ 127.0.0.1:4010 āđāļāļ·āđāļāđāļŦāđāđāļĢāļēāđāļĢāļĩāļĒāļāđāļāđāļāļēāļ
āđāļāđāļēāļāļĩāđāļāđāļāļĢāđāļāļĄāđāļŦāđāļāļāļŠāļāļāđāļĨāđāļ§āļāļĢāļąāļ āļāđāļāđāļāļāļ·āļāđāļāļīāļ Program āļāļ°āđāļĢāļāđāđāļāđāļāļĩāđāļāļāļąāļāļāļĢāļąāļāđāļāļēāđāļ§āļāļāļŠāļāļāđāļĢāļĩāļĒāļ API āļāļĄāđāļāđāļāļąāļ§āļĒāļāļāļāļīāļĒāļĄ Postman āļāļąāđāļāđāļāļāļāļĢāļąāļ
āđāļ§āļĨāļēāđāļĢāļĩāļĒāļāļāļĩāđ Postman āļāļāļāļīāđāļĢāļēāļāļ°āđāļĢāļĩāļĒāļāđāļāļāļĩāđ Web API Server āļāļāļāđāļĢāļēāļāļĢāļīāļāđ āļāļąāļāļāļĩāđāļāđāđāļŦāđāđāļāļĨāļĩāđāļĒāļāđāļāđāļāđāļĢāļĩāļĒāļāļāđāļēāļ prism proxy āđāļāļāļāļĢāļąāļ āļŦāļēāļāđāļĢāļĩāļĒāļāđāļĨāđāļ§āļāļļāļāļāļĒāđāļēāļ Respones āļāļēāļĄ Spec āļŦāļĄāļāđāļĢāļēāļāļ°āđāļāđ Response āļāļĩāđāļāļđāļāļāđāļāļāļĄāļēāļāļēāļĄāļāļĢāļīāļāļĄāļēāđāļĨāļĒāļāļĢāļąāļ āđāļāđāđāļ case āļāļĩāđāđāļĄāđāļāļĢāļāļāļēāļĄ Spec āļāđāļāļ°āđāļāđ Error āļĄāļēāđāļāļĒ Error āļāļĩāđāđāļāđāļĄāļēāđāļāļĩāđāļĒ āļĄāļąāļāļāļ°āļāļāļāļāđāļ§āļĒāļāļ°āļ§āđāļēāđāļāļĩāļĒāļāļāļąāļ Spec āđāļĨāđāļ§āļāļīāļāļāļĢāļāđāļŦāļ āđāļāđāļē prism āđāļāļĩāđāļĒāļĄāļąāļāļāļ° validate āđāļŦāđāļāļąāđāļāļāļāļ request āđāļĨāļ° response āđāļĨāļĒ
āļāļĢāļāļĩ request āđāļāđāļāļāļāļīāļāđ
āļŠāđāļ query string type=deleted āļāļķāđāļ spec āļāļāļāđāļ§āļ§āđāļēāļāļ°āļĄāļĩāđāļāđ active āđāļĨāļ° inactive
āļāļĢāļāļĩ request āļāļđāļāļāđāļāļāļŦāļĄāļāđāļāđ response āļāļĩāđāđāļāđāļāļĨāļąāļāļĄāļēāđāļĄāđāļāļĢāļāļāļēāļĄ spec
āļāđāļēāļāļđāđāļ cod āļāļĄāļāļąāđāļāđāļāđāļŦāđ response item āļāļĩāđ 2 āļĄāļĩ account_type=deleted
spec āļāļāļ account_type āļāļ°āļĄāļĩāđāļāđ active āđāļĨāļ° inactive
āļŦāļĨāļąāļāļāļēāļ Request āļāđāļēāļ Postman āđāļāđāļĨāđāļ§āļāļ°āđāļŦāđāļ Result āļāđāļēāļ Terminal āļāđāļ§āļĒāđāļāđāļāļāļąāļāļāļĢāļąāļ
āļāļ°āđāļŦāđāļāļ§āđāļēāļāđāļēāđāļāđāļāđāļāļāļāļĩāđāļāļēāļāļāļ°āđāļāļīāļ blocker āđāļāđāđāļāļ·āđāļāļāļāļēāļāļāļāđāļāļāļ§āđāļē API āļāļģāļāļēāļāđāļĄāđāļāļĢāļāļāļēāļĄ spec āļĄāļąāļāļāđāļāļ°āđāļĄāđ response āđāļāļāļēāļĄāļāļĩāđ API āļŠāđāļāļĄāļēāļāļĢāļīāļāđ āļāļģāđāļŦāđāđāļĢāļēāļāļēāļāļāļ°āđāļĄāđāđāļŦāđāļāļāļĨāļāļĢāļ°āļāļāļāļĢāļīāļāđ āļāļāļ consumer āļāļĩāđ request āļĄāļē āļāļąāļāļāļąāđāļāđāļĢāļēāļāļēāļāļāļ°āļāđāļāļāļāļēāļĢāđāļŦāđ response āļāļĨāļąāļāđāļāļŦāļē consumer āđāļĨāļĒāļāļĢāļīāļāđ āđāļāļ·āđāļāđāļŦāđāļĢāļđāđāļāļĨāļāļĢāļ°āļāļāļāļĩāđāđāļāļīāļāļāļķāđāļāļŦāļĢāļ·āļāļāđāļē consumer āļĄāļĩāļāļģ unit test āđāļ§āļāļĒāļđāđāđāļĨāđāļ§āđāļĢāļēāļāđāļāļ°āđāļāđāđāļŦāđāļāļāđāļ§āļĒāļ§āđāļēāđāļāļīāļāļāļ°āđāļĢāļāļķāđāļāļāļąāļ consumer āļāļēāļāđāļ case āļāļĩāđāļāļīāļāļāļĨāļēāļ
āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļģāđāļāđāļāđāļēāļĒāđ āđāļĨāļĒāļāļāļ run prism proxy āđāļĢāļēāđāļāđāđāļĄāđāļāđāļāļāļŠāđāļ --errors āđāļāđāļāđāļāļąāđāļāļāļĢāļąāļ āļĨāļāļāļāļąāļāđāļĨāļĒ
āļāļēāļāļāļąāđāļāđāļĢāļēāļĨāļāļāđāļāļē Postman āđāļĢāļĩāļĒāļāļāļđāļāļĩāļāļāļĩāļāļĢāļąāļ
āļāļ°āđāļŦāđāļāļ§āđāļēāđāļĢāļēāđāļāđ response āļĄāļēāļāļēāļ API āļāļēāļĄāļāļĢāļīāļāļāļĨāļąāļāļĄāļēāđāļĨāļĒāļāļ·āļāļāļĩāđāļĄāļĩ account_type=deleted āļāļĩāđāđāļĄāđāļāļĢāļāļāļēāļĄ spec āđāļĨāđāļ§āđāļĢāļēāļĨāļāļāđāļāļāļđāļāļĩāđ terminal āļāļĢāļąāļ
āļāļ°āđāļŦāđāļāļ§āđāļēāđāļĢāļēāļāļ°āđāļŦāđāļ error description āđāļŠāļāļāļāļ terminal āđāļāļāļāļĢāļąāļ
āļāļąāļāļāļĩāđāđāļāđāļāļāļąāļ§āļāļĒāđāļēāļāļāļĩāđāļāļģāđāļ§āđāļāđ 1 API āļāļĢāļąāļ āļāļēāļĄāļāļ§āļēāļĄāđāļāđāļāļāļĢāļīāļāđāļĢāļēāļāđāļŠāļēāļĄāļēāļĢāļāđāļāđāļ§āļīāļāļĩāļāļēāļĢāđāļāļĩāļĒāļ§āļāļąāļāđāļāđāļāļąāļāļāļļāļ API āļāļĩāđāđāļĢāļēāļĄāļĩ āļāļļāļāļāļĢāļąāđāļāļāļĩāđāļĄāļĩāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļŦāļēāļ Frontend āđāļĄāđāđāļāđāļāļģāļāļ°āđāļĢāđāļāđ Backend āļĄāļĩāļāļēāļĢāđāļāļīāđāļĄ Featrue āđāļĢāļēāļāđāļŠāļēāļĄāļēāļĢāļ run contract test āđāļāļ·āđāļāļāļđāļāđāļāļāļ§āđāļēāļĒāļąāļāļāļĢāļāļāļēāļĄ Spec āļāļĩāđāļāļļāļĒāļāļąāļāđāļ§āļāļĒāļđāđāļŦāļĢāļ·āļāđāļĄ āļāļģāđāļŦāđāļāļēāļāļāļĢāļąāđāļāļāļēāļāļāļ°āđāļĄāđāļāļģāđāļāđāļāļāđāļāļ E2E test āđāļĨāļĒāļāđāđāļāđ
āļāļāđāļĨāđāļ§āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļāļāđāļāđāļē Prism āļāļāļāļāļļāļāļāļĢāļąāļ
Reference
Feature āđāļāđāļĄāđ āļāļāļāđāļāđāļē "Prism" āļāļ°āļāļĢāļąāļ https://meta.stoplight.io/docs/prism/README.md
Featrue āļāļ·āđāļāđ āļāļāļ Prism āđāļāļāļēāļĢāļāļģ Contract Test https://meta.stoplight.io/docs/prism/docs/guides/03-validation-proxy.md
āļāđāļēāđāļāđāļāđāļēāđāļāļĐāļāļēāļāđāļ§āļĒāļāļ°āļāđāļ§āļĒāļāļēāļĒāļāļāļāļĄāļēāļāļāļ§āđāļēāļāļĩāđ