1environments:
2 local:
3 host: https://httpbin.org
4 test:
5 host: https://httpbin.org
6
7requests:
8 # HTTP Methods
9 get_request:
10 method: GET
11 url: "{{host}}/get"
12 description: "Simple GET with query parameters"
13 params:
14 foo: bar
15 random: "[[int]]"
16
17 post_request:
18 method: POST
19 url: "{{host}}/post"
20 description: "Simple POST with JSON body"
21 json:
22 name: "[[name]]"
23 action: "create"
24
25 put_request:
26 method: PUT
27 url: "{{host}}/put"
28 description: "Simple PUT with JSON body"
29 json:
30 id: "[[int]]"
31 status: "updated"
32
33 patch_request:
34 method: PATCH
35 url: "{{host}}/patch"
36 description: "Simple PATCH with form data"
37 form:
38 op: "replace"
39 path: "/settings"
40 value: "enabled"
41
42 delete_request:
43 method: DELETE
44 url: "{{host}}/delete"
45 description: "Simple DELETE with query parameters"
46 params:
47 id: "[[int]]"
48
49 # Payloads
50 json_nested:
51 method: POST
52 url: "{{host}}/post"
53 description: "Nested JSON structure"
54 json:
55 user:
56 profile:
57 first_name: "[[first_name]]"
58 last_name: "[[last_name]]"
59 tags: ["api", "tester", "[[word]]"]
60 meta:
61 timestamp: "[[timestamp]]"
62
63 form_data:
64 method: POST
65 url: "{{host}}/post"
66 description: "Form encoded data"
67 form:
68 username: "[[username]]"
69 email: "[[email]]"
70 type: "[[oneof: admin, user, guest]]"
71
72 file_upload:
73 method: POST
74 url: "{{host}}/post"
75 description: "Multipart file upload with form fields"
76 form:
77 description: "A test image"
78 files:
79 image: "test.png"
80
81 # Transformations & Generators
82 faker_generators:
83 method: POST
84 url: "{{host}}/post"
85 description: "Testing various faker generators"
86 json:
87 int: "[[int]]"
88 phone: "[[phone]]"
89 datetime: "[[datetime]]"
90 lat: "[[lat]]"
91 long: "[[long]]"
92 email: "[[email]]"
93 ipv4: "[[ipv4]]"
94 password: "[[password]]"
95 url: "[[url]]"
96 uuid: "[[uuid_hyphenated]]"
97 word: "[[word]]"
98 sentence: "[[sentence]]"
99
100 oneof_test:
101 method: POST
102 url: "{{host}}/post"
103 description: "Testing oneof selection"
104 json:
105 choice: "[[oneof: red, green, blue]]"
106 priority: "[[oneof: 1, 2, 3, 4, 5]]"
107
108 # Substitutions & Reuse
109 env_substitution:
110 method: POST
111 url: "{{host}}/post"
112 description: "Testing environment variable substitution"
113 json:
114 system_path: "{{PATH}}"
115 custom_var: "{{HEPI_TEST_VAR}}"
116
117 header_substitution:
118 method: GET
119 url: "{{host}}/headers"
120 description: "Testing header substitution"
121 headers:
122 X-Custom-Env: "{{HEPI_TEST_VAR}}"
123 X-Request-ID: "REQ-[[int]]"
124 X-Auth-Token: "Bearer [[jwt]]"
125
126 result_reuse_simple:
127 method: POST
128 url: "{{host}}/post"
129 description: "Reusing results from get_request and post_request"
130 json:
131 source_get_foo: "{{get_request.args.foo}}"
132 source_post_name: "{{post_request.json.name}}"
133
134 result_reuse_nested:
135 method: POST
136 url: "{{host}}/post"
137 description: "Reusing results from json_nested"
138 json:
139 full_name: "{{json_nested.json.user.profile.first_name}} {{json_nested.json.user.profile.last_name}}"
140 first_tag: "{{json_nested.json.user.tags.0}}"
141
142 # Advanced
143 status_reporting:
144 method: GET
145 url: "{{host}}/status/[[oneof: 200, 201, 400, 401, 404, 500]]"
146 description: "Testing status code reporting"
147
148groups:
149 methods:
150 - get_request
151 - post_request
152 - put_request
153 - patch_request
154 - delete_request
155 payloads:
156 - json_nested
157 - form_data
158 - file_upload
159 generators:
160 - faker_generators
161 - oneof_test
162 substitutions:
163 - env_substitution
164 - header_substitution
165 - result_reuse_simple
166 - result_reuse_nested
167 all:
168 - get_request
169 - post_request
170 - put_request
171 - patch_request
172 - delete_request
173 - json_nested
174 - form_data
175 - file_upload
176 - faker_generators
177 - oneof_test
178 - env_substitution
179 - header_substitution
180 - result_reuse_simple
181 - result_reuse_nested
182 - status_reporting