mmt-mcp 1.42.2-pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/dist/examples/README.md +19 -0
- package/dist/examples/ai/golden_smoke/README.md +8 -0
- package/dist/examples/ai/golden_smoke/apis/echo.mmt +12 -0
- package/dist/examples/ai/golden_smoke/tests/echo-smoke.mmt +18 -0
- package/dist/examples/basic/01_simple_api/README.md +38 -0
- package/dist/examples/basic/01_simple_api/get_json.mmt +6 -0
- package/dist/examples/basic/01_simple_api/post_echo_json_body.mmt +13 -0
- package/dist/examples/basic/01_simple_api/post_echo_yaml_body.mmt +11 -0
- package/dist/examples/basic/02_simple_test/README.md +35 -0
- package/dist/examples/basic/02_simple_test/echo_test.mmt +12 -0
- package/dist/examples/basic/03_environment_variables/README.md +40 -0
- package/dist/examples/basic/03_environment_variables/get_json.mmt +6 -0
- package/dist/examples/basic/03_environment_variables/multimeter.mmt +3 -0
- package/dist/examples/basic/04_basic_suite/README.md +33 -0
- package/dist/examples/basic/04_basic_suite/suite.mmt +6 -0
- package/dist/examples/basic/04_basic_suite/tests/get_status_test.mmt +9 -0
- package/dist/examples/basic/04_basic_suite/tests/post_echo_test.mmt +12 -0
- package/dist/examples/basic/05_basic_documentation/README.md +24 -0
- package/dist/examples/basic/05_basic_documentation/api/get_user.mmt +12 -0
- package/dist/examples/basic/05_basic_documentation/document.mmt +4 -0
- package/dist/examples/examples-index.json +1559 -0
- package/dist/examples/intermediate/01_api_inputs_outputs/README.md +46 -0
- package/dist/examples/intermediate/01_api_inputs_outputs/get_dot_notation.mmt +14 -0
- package/dist/examples/intermediate/01_api_inputs_outputs/get_with_outputs.mmt +10 -0
- package/dist/examples/intermediate/01_api_inputs_outputs/post_regex_outputs.mmt +24 -0
- package/dist/examples/intermediate/01_api_inputs_outputs/post_with_inputs_outputs.mmt +20 -0
- package/dist/examples/intermediate/02_websocket/README.md +44 -0
- package/dist/examples/intermediate/02_websocket/ws_echo.mmt +11 -0
- package/dist/examples/intermediate/02_websocket/ws_json_echo.mmt +16 -0
- package/dist/examples/intermediate/03_graphql/README.md +10 -0
- package/dist/examples/intermediate/03_graphql/graphql_query.mmt +16 -0
- package/dist/examples/intermediate/03_graphql/graphql_variables.mmt +25 -0
- package/dist/examples/intermediate/04_grpc/README.md +10 -0
- package/dist/examples/intermediate/04_grpc/grpc_server_stream.mmt +15 -0
- package/dist/examples/intermediate/04_grpc/grpc_unary.mmt +13 -0
- package/dist/examples/intermediate/05_api_documentation/README.md +33 -0
- package/dist/examples/intermediate/05_api_documentation/api/get_users.mmt +13 -0
- package/dist/examples/intermediate/05_api_documentation/api/post_create_user.mmt +25 -0
- package/dist/examples/intermediate/05_api_documentation/api/ws_notifications.mmt +18 -0
- package/dist/examples/intermediate/05_api_documentation/document.mmt +17 -0
- package/dist/examples/intermediate/05_api_documentation/markdown_api/health_check.mmt +6 -0
- package/dist/examples/intermediate/05_api_documentation/markdown_api/overview.md +77 -0
- package/dist/examples/intermediate/05_api_documentation/markdown_api/search_products.mmt +15 -0
- package/dist/examples/intermediate/05_api_documentation/markdown_api/submit_order.mmt +18 -0
- package/dist/examples/intermediate/06_imports/README.md +92 -0
- package/dist/examples/intermediate/06_imports/apis/echo_api.mmt +13 -0
- package/dist/examples/intermediate/06_imports/apis/greet_api.mmt +13 -0
- package/dist/examples/intermediate/06_imports/multimeter.mmt +5 -0
- package/dist/examples/intermediate/06_imports/test_relative.mmt +15 -0
- package/dist/examples/intermediate/06_imports/test_root_import.mmt +14 -0
- package/dist/examples/intermediate/06_imports/tests/test_api.mmt +30 -0
- package/dist/examples/intermediate/07_simple_suite/README.md +56 -0
- package/dist/examples/intermediate/07_simple_suite/api/echo_api.mmt +12 -0
- package/dist/examples/intermediate/07_simple_suite/api/status_api.mmt +8 -0
- package/dist/examples/intermediate/07_simple_suite/suite_parallel.mmt +11 -0
- package/dist/examples/intermediate/07_simple_suite/suite_sequential.mmt +14 -0
- package/dist/examples/intermediate/07_simple_suite/test/echo_test.mmt +16 -0
- package/dist/examples/intermediate/07_simple_suite/test/echo_test_fail.mmt +15 -0
- package/dist/examples/intermediate/07_simple_suite/test/status_test.mmt +11 -0
- package/dist/examples/intermediate/07_simple_suite/test/status_test_fail.mmt +11 -0
- package/dist/examples/intermediate/08_chained_api_calls/README.md +58 -0
- package/dist/examples/intermediate/08_chained_api_calls/api/get_profile.mmt +15 -0
- package/dist/examples/intermediate/08_chained_api_calls/api/login.mmt +17 -0
- package/dist/examples/intermediate/08_chained_api_calls/chained_test.mmt +31 -0
- package/dist/examples/intermediate/09_csv_data_driven_test/README.md +80 -0
- package/dist/examples/intermediate/09_csv_data_driven_test/echo_api.mmt +14 -0
- package/dist/examples/intermediate/09_csv_data_driven_test/echo_csv_test.mmt +18 -0
- package/dist/examples/intermediate/10_environment_presets/README.md +58 -0
- package/dist/examples/intermediate/10_environment_presets/api/echo_env.mmt +14 -0
- package/dist/examples/intermediate/10_environment_presets/multimeter.mmt +22 -0
- package/dist/examples/intermediate/10_environment_presets/test/preset_test.mmt +14 -0
- package/dist/examples/intermediate/11_control_flow/README.md +48 -0
- package/dist/examples/intermediate/11_control_flow/api/echo.mmt +13 -0
- package/dist/examples/intermediate/11_control_flow/for_loop_test.mmt +15 -0
- package/dist/examples/intermediate/11_control_flow/if_else_test.mmt +19 -0
- package/dist/examples/intermediate/11_control_flow/repeat_delay_test.mmt +24 -0
- package/dist/examples/intermediate/12_random_values/README.md +59 -0
- package/dist/examples/intermediate/12_random_values/api/random_echo.mmt +21 -0
- package/dist/examples/intermediate/12_random_values/random_values_test.mmt +15 -0
- package/dist/examples/intermediate/13_stages_and_conditions/README.md +58 -0
- package/dist/examples/intermediate/13_stages_and_conditions/api/get_profile.mmt +13 -0
- package/dist/examples/intermediate/13_stages_and_conditions/api/get_settings.mmt +13 -0
- package/dist/examples/intermediate/13_stages_and_conditions/api/login.mmt +15 -0
- package/dist/examples/intermediate/13_stages_and_conditions/stages_test.mmt +40 -0
- package/dist/examples/intermediate/14_javascript_helpers/README.md +59 -0
- package/dist/examples/intermediate/14_javascript_helpers/api/echo.mmt +13 -0
- package/dist/examples/intermediate/14_javascript_helpers/js_test.mmt +31 -0
- package/dist/examples/intermediate/15_http_files/README.md +25 -0
- package/dist/examples/intermediate/15_http_files/import_http_in_test.mmt +8 -0
- package/dist/examples/intermediate/16_bruno_files/README.md +36 -0
- package/dist/examples/intermediate/16_bruno_files/import_bruno_in_test.mmt +18 -0
- package/dist/examples/intermediate/16_bruno_files/library/README.md +8 -0
- package/dist/examples/intermediate/17_api_authentication/README.md +35 -0
- package/dist/examples/intermediate/17_api_authentication/get_with_apikey_auth.mmt +10 -0
- package/dist/examples/intermediate/17_api_authentication/get_with_basic_auth.mmt +10 -0
- package/dist/examples/intermediate/17_api_authentication/get_with_bearer_auth.mmt +9 -0
- package/dist/examples/intermediate/18_simple_mock_server/README.md +92 -0
- package/dist/examples/intermediate/18_simple_mock_server/api/create_user.mmt +15 -0
- package/dist/examples/intermediate/18_simple_mock_server/api/get_health.mmt +9 -0
- package/dist/examples/intermediate/18_simple_mock_server/api/get_user.mmt +12 -0
- package/dist/examples/intermediate/18_simple_mock_server/api/search.mmt +11 -0
- package/dist/examples/intermediate/18_simple_mock_server/server/mock_server.mmt +46 -0
- package/dist/examples/intermediate/18_simple_mock_server/suite.mmt +12 -0
- package/dist/examples/intermediate/18_simple_mock_server/test/health_test.mmt +13 -0
- package/dist/examples/intermediate/18_simple_mock_server/test/search_test.mmt +15 -0
- package/dist/examples/intermediate/18_simple_mock_server/test/user_test.mmt +27 -0
- package/dist/examples/intermediate/19_environment_post_echo/README.md +33 -0
- package/dist/examples/intermediate/19_environment_post_echo/multimeter.mmt +4 -0
- package/dist/examples/intermediate/19_environment_post_echo/post_echo.mmt +12 -0
- package/dist/examples/intermediate/20_document_parameters/README.md +25 -0
- package/dist/examples/intermediate/20_document_parameters/api/search_users.mmt +28 -0
- package/dist/examples/intermediate/20_document_parameters/document.mmt +6 -0
- package/dist/examples/intermediate/21_manual_timeout/README.md +22 -0
- package/dist/examples/intermediate/21_manual_timeout/manual_timeout.mmt +11 -0
- package/dist/examples/intermediate/22_omit_keyword/README.md +45 -0
- package/dist/examples/intermediate/22_omit_keyword/omit_keyword.mmt +34 -0
- package/dist/examples/intermediate/22_omit_keyword/omit_keyword_test.mmt +19 -0
- package/dist/examples/intermediate/23_check_operators/README.md +31 -0
- package/dist/examples/intermediate/23_check_operators/api/sample.mmt +27 -0
- package/dist/examples/intermediate/23_check_operators/operators_test.mmt +54 -0
- package/dist/examples/intermediate/24_test_call_cache/README.md +34 -0
- package/dist/examples/intermediate/24_test_call_cache/api/login_echo.mmt +19 -0
- package/dist/examples/intermediate/24_test_call_cache/create_session.mmt +28 -0
- package/dist/examples/intermediate/24_test_call_cache/use_session_cache.mmt +41 -0
- package/dist/examples/intermediate/25_convert_to_mmt/README.md +17 -0
- package/dist/examples/intermediate/25_convert_to_mmt/bruno/README.md +5 -0
- package/dist/examples/intermediate/25_convert_to_mmt/bruno/converted/api/create-user.mmt +11 -0
- package/dist/examples/intermediate/25_convert_to_mmt/bruno/converted/tests/create-user.mmt +11 -0
- package/dist/examples/intermediate/25_convert_to_mmt/http/README.md +5 -0
- package/dist/examples/intermediate/25_convert_to_mmt/http/converted/api/ping.mmt +9 -0
- package/dist/examples/intermediate/25_convert_to_mmt/http/converted/tests/source-http.mmt +11 -0
- package/dist/examples/intermediate/25_convert_to_mmt/openapi/README.md +5 -0
- package/dist/examples/intermediate/25_convert_to_mmt/openapi/converted/api/get-sample-json.mmt +8 -0
- package/dist/examples/intermediate/25_convert_to_mmt/postman/README.md +7 -0
- package/dist/examples/intermediate/25_convert_to_mmt/postman/converted/api/ping.mmt +23 -0
- package/dist/examples/intermediate/25_convert_to_mmt/postman/converted/suites/collection.mmt +7 -0
- package/dist/examples/intermediate/25_convert_to_mmt/postman/converted/tests/collection.mmt +17 -0
- package/dist/examples/intermediate/25_convert_to_mmt/wsdl/README.md +5 -0
- package/dist/examples/intermediate/25_convert_to_mmt/wsdl/converted/api/ping.mmt +21 -0
- package/dist/examples/intermediate/26_yaml_expect_typing/README.md +21 -0
- package/dist/examples/intermediate/26_yaml_expect_typing/typing_test.mmt +29 -0
- package/dist/examples/intermediate/27_ai_judge/README.md +31 -0
- package/dist/examples/intermediate/27_ai_judge/judge_demo.mmt +33 -0
- package/dist/examples/intermediate/27_ai_judge/judges/gemini.mmt +12 -0
- package/dist/examples/intermediate/27_ai_judge/judges/ollama.mmt +8 -0
- package/dist/examples/professional/01_report_generation/README.md +87 -0
- package/dist/examples/professional/01_report_generation/api/echo.mmt +13 -0
- package/dist/examples/professional/01_report_generation/suite.mmt +12 -0
- package/dist/examples/professional/01_report_generation/test/fail_test.mmt +11 -0
- package/dist/examples/professional/01_report_generation/test/pass_test.mmt +17 -0
- package/dist/examples/professional/02_tls_certificates/README.md +113 -0
- package/dist/examples/professional/02_tls_certificates/api/secure_echo.mmt +13 -0
- package/dist/examples/professional/02_tls_certificates/env.mmt +17 -0
- package/dist/examples/professional/02_tls_certificates/tls_test.mmt +12 -0
- package/dist/examples/professional/03_load_test/README.md +39 -0
- package/dist/examples/professional/03_load_test/echo_api.mmt +12 -0
- package/dist/examples/professional/03_load_test/echo_test.mmt +14 -0
- package/dist/examples/professional/03_load_test/loadtest.mmt +15 -0
- package/dist/examples/professional/04_convert_to_mmt/README.md +30 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/README.md +8 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/basic-auth-check.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/bearer-auth-check.mmt +12 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/cache-headers.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/delayed-response.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/echo-anything-alias.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/echo-delete.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/echo-get-with-query.mmt +10 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/echo-post-body.mmt +13 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/echo-put-body.mmt +14 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/get-sample-html.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/get-sample-json.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/get-sample-xml.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/method-match-get.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/random-bytes.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/redirect-twice.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/return-client-ip.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/return-cookies.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/return-request-headers.mmt +10 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/return-status-200.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/return-status-404.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/service-help.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/set-cookie.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/basic-auth-check.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/bearer-auth-check.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/cache-headers.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/delayed-response.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/echo-anything-alias.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/echo-delete.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/echo-get-with-query.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/echo-post-body.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/echo-put-body.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/get-sample-html.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/get-sample-json.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/get-sample-xml.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/method-match-get.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/random-bytes.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/redirect-twice.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/return-client-ip.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/return-cookies.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/return-request-headers.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/return-status-200.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/return-status-404.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/service-help.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/set-cookie.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/http/README.md +7 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/basic-auth-check.mmt +10 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/bearer-auth-check.mmt +10 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/cache-headers.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/delayed-response.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/echo-anything-alias.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/echo-delete.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/echo-get-with-query.mmt +10 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/echo-post-body.mmt +13 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/echo-put-body.mmt +14 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/get-sample-html.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/get-sample-json.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/get-sample-xml.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/method-match-get.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/random-bytes.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/redirect-twice.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/return-client-ip.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/return-cookies.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/return-request-headers.mmt +10 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/return-status-200.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/return-status-404.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/service-help.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/api/set-cookie.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/http/converted/tests/source-http.mmt +95 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/README.md +8 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/basic-auth-check.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/bearer-auth-check.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/cache-headers.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/delayed-response.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/echo-anything-alias.mmt +13 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/echo-delete.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/echo-get-with-query.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/echo-post-body.mmt +36 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/echo-put-body.mmt +25 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/get-sample-html.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/get-sample-json.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/get-sample-xml.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/method-match.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/random-bytes.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/redirect-n-times.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/return-client-ip.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/return-cookies.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/return-request-headers.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/return-status-code.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/service-help.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/set-cookie.mmt +9 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/README.md +8 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/auth/basic-auth-check.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/auth/bearer-auth-check.mmt +10 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/echo/echo-anything-alias.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/echo/echo-delete.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/echo/echo-get-with-query.mmt +8 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/echo/echo-post-body.mmt +13 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/echo/echo-put-body.mmt +14 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/inspect/return-client-ip.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/inspect/return-cookies.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/inspect/return-request-headers.mmt +8 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/inspect/set-cookie.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/samples/get-sample-html.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/samples/get-sample-json.mmt +28 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/samples/get-sample-xml.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/samples/random-bytes.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/samples/service-help.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/cache-headers.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/delayed-response.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/method-match-get.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/redirect-twice.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/return-status-200.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/return-status-404.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/multimeter.mmt +11 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/auth.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/collection.mmt +15 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/echo.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/inspect.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/samples.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/status.mmt +7 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/tests/auth.mmt +15 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/tests/echo.mmt +27 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/tests/inspect.mmt +23 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/tests/samples.mmt +29 -0
- package/dist/examples/professional/04_convert_to_mmt/postman/converted/tests/status.mmt +31 -0
- package/dist/examples/professional/04_convert_to_mmt/wsdl/README.md +8 -0
- package/dist/examples/professional/04_convert_to_mmt/wsdl/converted/api/echomessage.mmt +23 -0
- package/dist/examples/professional/04_convert_to_mmt/wsdl/converted/api/getsamplexml.mmt +21 -0
- package/dist/examples/professional/04_convert_to_mmt/wsdl/converted/api/probestatus.mmt +21 -0
- package/dist/examples/professional/05_tls_mock_server/README.md +19 -0
- package/dist/examples/professional/05_tls_mock_server/api/secure_health.mmt +11 -0
- package/dist/examples/professional/05_tls_mock_server/multimeter.mmt +3 -0
- package/dist/examples/professional/05_tls_mock_server/server/mock_server.mmt +23 -0
- package/dist/examples/professional/05_tls_mock_server/test/secure_health_test.mmt +15 -0
- package/dist/examples/professional/06_mtls_mock_server/README.md +23 -0
- package/dist/examples/professional/06_mtls_mock_server/api/secure_health.mmt +11 -0
- package/dist/examples/professional/06_mtls_mock_server/multimeter.mmt +12 -0
- package/dist/examples/professional/06_mtls_mock_server/server/mock_server.mmt +24 -0
- package/dist/examples/professional/06_mtls_mock_server/test/secure_health_test.mmt +15 -0
- package/dist/examples/professional/07_mock_server_timeout/README.md +26 -0
- package/dist/examples/professional/07_mock_server_timeout/api/slow_request.mmt +10 -0
- package/dist/examples/professional/07_mock_server_timeout/server/mock_server.mmt +19 -0
- package/dist/examples/professional/07_mock_server_timeout/suite.mmt +7 -0
- package/dist/examples/professional/07_mock_server_timeout/test/slow_timeout_test.mmt +15 -0
- package/dist/examples/professional/08_external_mtls_badssl/README.md +52 -0
- package/dist/examples/professional/08_external_mtls_badssl/api/badssl_client.mmt +6 -0
- package/dist/examples/professional/08_external_mtls_badssl/badssl_mtls_test.mmt +10 -0
- package/dist/examples/professional/08_external_mtls_badssl/multimeter.mmt +13 -0
- package/dist/examples/professional/09_ci_pipelines/README.md +92 -0
- package/dist/examples/professional/09_ci_pipelines/smoke_get.mmt +9 -0
- package/dist/examples/professional/09_ci_pipelines/smoke_post.mmt +12 -0
- package/dist/examples/professional/09_ci_pipelines/suite.mmt +9 -0
- package/dist/examples/professional/10_vault_http_setenv/README.md +60 -0
- package/dist/examples/professional/10_vault_http_setenv/api/bearer_with_env_token.mmt +16 -0
- package/dist/examples/professional/10_vault_http_setenv/api/vault_kv_read.mmt +22 -0
- package/dist/examples/professional/10_vault_http_setenv/env.mmt +21 -0
- package/dist/examples/professional/10_vault_http_setenv/server/vault_kv_mock.mmt +45 -0
- package/dist/examples/professional/10_vault_http_setenv/vault_to_api_test.mmt +22 -0
- package/dist/guides/agent-workflow.md +75 -0
- package/dist/guides/general.md +64 -0
- package/dist/guides/generate-api.md +221 -0
- package/dist/guides/generate-doc.md +103 -0
- package/dist/guides/generate-env.md +147 -0
- package/dist/guides/generate-loadtest.md +55 -0
- package/dist/guides/generate-suite.md +167 -0
- package/dist/guides/generate-test-skill.md +60 -0
- package/dist/guides/generate-test.md +335 -0
- package/dist/guides/generate.md +60 -0
- package/dist/guides/golden-smoke.md +52 -0
- package/dist/guides/min/api.md +29 -0
- package/dist/guides/min/constraints.md +9 -0
- package/dist/guides/min/doc.md +17 -0
- package/dist/guides/min/env.md +26 -0
- package/dist/guides/min/loadtest.md +17 -0
- package/dist/guides/min/overview.md +25 -0
- package/dist/guides/min/suite.md +18 -0
- package/dist/guides/min/test.md +42 -0
- package/dist/guides/min/workflow.md +16 -0
- package/dist/guides/offline-agent.md +46 -0
- package/dist/server.cjs +27500 -0
- package/dist/server.js +27500 -0
- package/package.json +58 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
type: api
|
|
2
|
+
title: Get sample JSON
|
|
3
|
+
outputs:
|
|
4
|
+
status: status
|
|
5
|
+
statusCode: status
|
|
6
|
+
id: body.id
|
|
7
|
+
name: body.name
|
|
8
|
+
description: body.description
|
|
9
|
+
version: body.version
|
|
10
|
+
tags: body.tags
|
|
11
|
+
url: <<e:host>>/json
|
|
12
|
+
method: get
|
|
13
|
+
format: json
|
|
14
|
+
headers:
|
|
15
|
+
Accept: application/json
|
|
16
|
+
examples:
|
|
17
|
+
- name: sample json
|
|
18
|
+
outputs:
|
|
19
|
+
status: 200
|
|
20
|
+
statusCode: 200
|
|
21
|
+
id: 1
|
|
22
|
+
name: Multimeter
|
|
23
|
+
description: API testing tool
|
|
24
|
+
version: 1.0.0
|
|
25
|
+
tags:
|
|
26
|
+
- api
|
|
27
|
+
- testing
|
|
28
|
+
- automation
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type: suite
|
|
2
|
+
title: Multimeter Test Server
|
|
3
|
+
description: Generated from Postman collection folder "Multimeter Test Server".
|
|
4
|
+
tags:
|
|
5
|
+
- postman
|
|
6
|
+
items:
|
|
7
|
+
- +/suites/auth.mmt
|
|
8
|
+
- then
|
|
9
|
+
- +/suites/echo.mmt
|
|
10
|
+
- then
|
|
11
|
+
- +/suites/inspect.mmt
|
|
12
|
+
- then
|
|
13
|
+
- +/suites/samples.mmt
|
|
14
|
+
- then
|
|
15
|
+
- +/suites/status.mmt
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type: test
|
|
2
|
+
title: Auth
|
|
3
|
+
description: Generated from Postman collection folder "Auth".
|
|
4
|
+
tags:
|
|
5
|
+
- postman
|
|
6
|
+
import:
|
|
7
|
+
bearerAuthCheck: +/api/auth/bearer-auth-check.mmt
|
|
8
|
+
basicAuthCheck: +/api/auth/basic-auth-check.mmt
|
|
9
|
+
steps:
|
|
10
|
+
- call: bearerAuthCheck
|
|
11
|
+
id: iBearerAuthCheck
|
|
12
|
+
debug: true
|
|
13
|
+
- call: basicAuthCheck
|
|
14
|
+
id: iBasicAuthCheck
|
|
15
|
+
debug: true
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
type: test
|
|
2
|
+
title: Echo
|
|
3
|
+
description: Generated from Postman collection folder "Echo".
|
|
4
|
+
tags:
|
|
5
|
+
- postman
|
|
6
|
+
import:
|
|
7
|
+
echoPostBody: +/api/echo/echo-post-body.mmt
|
|
8
|
+
echoPutBody: +/api/echo/echo-put-body.mmt
|
|
9
|
+
echoGetWithQuery: +/api/echo/echo-get-with-query.mmt
|
|
10
|
+
echoDelete: +/api/echo/echo-delete.mmt
|
|
11
|
+
echoAnythingAlias: +/api/echo/echo-anything-alias.mmt
|
|
12
|
+
steps:
|
|
13
|
+
- call: echoPostBody
|
|
14
|
+
id: iEchoPostBody
|
|
15
|
+
debug: true
|
|
16
|
+
- call: echoPutBody
|
|
17
|
+
id: iEchoPutBody
|
|
18
|
+
debug: true
|
|
19
|
+
- call: echoGetWithQuery
|
|
20
|
+
id: iEchoGetWithQuery
|
|
21
|
+
debug: true
|
|
22
|
+
- call: echoDelete
|
|
23
|
+
id: iEchoDelete
|
|
24
|
+
debug: true
|
|
25
|
+
- call: echoAnythingAlias
|
|
26
|
+
id: iEchoAnythingAlias
|
|
27
|
+
debug: true
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
type: test
|
|
2
|
+
title: Inspect
|
|
3
|
+
description: Generated from Postman collection folder "Inspect".
|
|
4
|
+
tags:
|
|
5
|
+
- postman
|
|
6
|
+
import:
|
|
7
|
+
returnRequestHeaders: +/api/inspect/return-request-headers.mmt
|
|
8
|
+
returnClientIp: +/api/inspect/return-client-ip.mmt
|
|
9
|
+
returnCookies: +/api/inspect/return-cookies.mmt
|
|
10
|
+
setCookie: +/api/inspect/set-cookie.mmt
|
|
11
|
+
steps:
|
|
12
|
+
- call: returnRequestHeaders
|
|
13
|
+
id: iReturnRequestHeaders
|
|
14
|
+
debug: true
|
|
15
|
+
- call: returnClientIp
|
|
16
|
+
id: iReturnClientIp
|
|
17
|
+
debug: true
|
|
18
|
+
- call: returnCookies
|
|
19
|
+
id: iReturnCookies
|
|
20
|
+
debug: true
|
|
21
|
+
- call: setCookie
|
|
22
|
+
id: iSetCookie
|
|
23
|
+
debug: true
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
type: test
|
|
2
|
+
title: Samples
|
|
3
|
+
description: Generated from Postman collection folder "Samples".
|
|
4
|
+
tags:
|
|
5
|
+
- postman
|
|
6
|
+
import:
|
|
7
|
+
serviceHelp: +/api/samples/service-help.mmt
|
|
8
|
+
getSampleJson: +/api/samples/get-sample-json.mmt
|
|
9
|
+
getSampleXml: +/api/samples/get-sample-xml.mmt
|
|
10
|
+
getSampleHtml: +/api/samples/get-sample-html.mmt
|
|
11
|
+
randomBytes: +/api/samples/random-bytes.mmt
|
|
12
|
+
steps:
|
|
13
|
+
- call: serviceHelp
|
|
14
|
+
id: iServiceHelp
|
|
15
|
+
debug: true
|
|
16
|
+
- call: getSampleJson
|
|
17
|
+
id: iGetSampleJson
|
|
18
|
+
expect:
|
|
19
|
+
status: == 200
|
|
20
|
+
debug: true
|
|
21
|
+
- call: getSampleXml
|
|
22
|
+
id: iGetSampleXml
|
|
23
|
+
debug: true
|
|
24
|
+
- call: getSampleHtml
|
|
25
|
+
id: iGetSampleHtml
|
|
26
|
+
debug: true
|
|
27
|
+
- call: randomBytes
|
|
28
|
+
id: iRandomBytes
|
|
29
|
+
debug: true
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
type: test
|
|
2
|
+
title: Status
|
|
3
|
+
description: Generated from Postman collection folder "Status".
|
|
4
|
+
tags:
|
|
5
|
+
- postman
|
|
6
|
+
import:
|
|
7
|
+
returnStatus200: +/api/status/return-status-200.mmt
|
|
8
|
+
returnStatus404: +/api/status/return-status-404.mmt
|
|
9
|
+
delayedResponse: +/api/status/delayed-response.mmt
|
|
10
|
+
redirectTwice: +/api/status/redirect-twice.mmt
|
|
11
|
+
cacheHeaders: +/api/status/cache-headers.mmt
|
|
12
|
+
methodMatchGet: +/api/status/method-match-get.mmt
|
|
13
|
+
steps:
|
|
14
|
+
- call: returnStatus200
|
|
15
|
+
id: iReturnStatus200
|
|
16
|
+
debug: true
|
|
17
|
+
- call: returnStatus404
|
|
18
|
+
id: iReturnStatus404
|
|
19
|
+
debug: true
|
|
20
|
+
- call: delayedResponse
|
|
21
|
+
id: iDelayedResponse
|
|
22
|
+
debug: true
|
|
23
|
+
- call: redirectTwice
|
|
24
|
+
id: iRedirectTwice
|
|
25
|
+
debug: true
|
|
26
|
+
- call: cacheHeaders
|
|
27
|
+
id: iCacheHeaders
|
|
28
|
+
debug: true
|
|
29
|
+
- call: methodMatchGet
|
|
30
|
+
id: iMethodMatchGet
|
|
31
|
+
debug: true
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Multimeter Test Server — WSDL
|
|
2
|
+
|
|
3
|
+
Multi-operation WSDL convert sample. The sandbox is HTTP-first; operations use `https://test.mmt.dev/xml` as the SOAP address so **Convert to MMT...** still produces several `type: api` files.
|
|
4
|
+
|
|
5
|
+
- Source: `source.wsdl`
|
|
6
|
+
- Converted APIs: `converted/api/`
|
|
7
|
+
|
|
8
|
+
See the [professional convert overview](../README.md). For a one-operation sample, see [intermediate WSDL convert](../../../intermediate/25_convert_to_mmt/wsdl/).
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
type: api
|
|
2
|
+
title: EchoMessage
|
|
3
|
+
inputs:
|
|
4
|
+
message: string
|
|
5
|
+
role: string
|
|
6
|
+
url: https://test.mmt.dev/xml
|
|
7
|
+
protocol: http
|
|
8
|
+
method: post
|
|
9
|
+
format: xml
|
|
10
|
+
headers:
|
|
11
|
+
Content-Type: text/xml; charset=utf-8
|
|
12
|
+
SOAPAction: urn:EchoMessage
|
|
13
|
+
body: |-
|
|
14
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
15
|
+
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="urn:mmt-test">
|
|
16
|
+
<soapenv:Header/>
|
|
17
|
+
<soapenv:Body>
|
|
18
|
+
<tns:EchoMessage>
|
|
19
|
+
<tns:message><<i:message>></tns:message>
|
|
20
|
+
<tns:role><<i:role>></tns:role>
|
|
21
|
+
</tns:EchoMessage>
|
|
22
|
+
</soapenv:Body>
|
|
23
|
+
</soapenv:Envelope>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type: api
|
|
2
|
+
title: GetSampleXml
|
|
3
|
+
inputs:
|
|
4
|
+
trace: string
|
|
5
|
+
url: https://test.mmt.dev/xml
|
|
6
|
+
protocol: http
|
|
7
|
+
method: post
|
|
8
|
+
format: xml
|
|
9
|
+
headers:
|
|
10
|
+
Content-Type: text/xml; charset=utf-8
|
|
11
|
+
SOAPAction: urn:GetSampleXml
|
|
12
|
+
body: |-
|
|
13
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
14
|
+
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="urn:mmt-test">
|
|
15
|
+
<soapenv:Header/>
|
|
16
|
+
<soapenv:Body>
|
|
17
|
+
<tns:GetSampleXml>
|
|
18
|
+
<tns:trace><<i:trace>></tns:trace>
|
|
19
|
+
</tns:GetSampleXml>
|
|
20
|
+
</soapenv:Body>
|
|
21
|
+
</soapenv:Envelope>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type: api
|
|
2
|
+
title: ProbeStatus
|
|
3
|
+
inputs:
|
|
4
|
+
code: 0
|
|
5
|
+
url: https://test.mmt.dev/xml
|
|
6
|
+
protocol: http
|
|
7
|
+
method: post
|
|
8
|
+
format: xml
|
|
9
|
+
headers:
|
|
10
|
+
Content-Type: text/xml; charset=utf-8
|
|
11
|
+
SOAPAction: urn:ProbeStatus
|
|
12
|
+
body: |-
|
|
13
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
14
|
+
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="urn:mmt-test">
|
|
15
|
+
<soapenv:Header/>
|
|
16
|
+
<soapenv:Body>
|
|
17
|
+
<tns:ProbeStatus>
|
|
18
|
+
<tns:code><<i:code>></tns:code>
|
|
19
|
+
</tns:ProbeStatus>
|
|
20
|
+
</soapenv:Body>
|
|
21
|
+
</soapenv:Envelope>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# TLS Mock Server
|
|
2
|
+
|
|
3
|
+
This example starts a local mock server with `protocol: https` and `connection.mode: tls`, then calls it from a Multimeter test.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
- `server/mock_server.mmt` defines the TLS mock server on port `29443`.
|
|
8
|
+
- `api/secure_health.mmt` calls the fixed client URL `https://localhost:29443/health`.
|
|
9
|
+
- `test/secure_health_test.mmt` starts the server and calls the API.
|
|
10
|
+
- `env.mmt` trusts the example CA certificate.
|
|
11
|
+
- `certs/` contains long-lived local test certificates for this example.
|
|
12
|
+
|
|
13
|
+
## Run
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
npx testlight run examples/professional/05_tls_mock_server/test/secure_health_test.mmt
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The runner discovers the nearest `env.mmt` automatically. You can still pass `--env-file examples/professional/05_tls_mock_server/env.mmt` explicitly if you prefer.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type: api
|
|
2
|
+
title: TLS Mock Health
|
|
3
|
+
description: Client call to the local TLS mock server
|
|
4
|
+
outputs:
|
|
5
|
+
status_code: status
|
|
6
|
+
status_field: body.status
|
|
7
|
+
transport: body.transport
|
|
8
|
+
message: body.message
|
|
9
|
+
url: https://localhost:29443/health
|
|
10
|
+
method: get
|
|
11
|
+
format: json
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
type: server
|
|
2
|
+
title: TLS Mock Server
|
|
3
|
+
description: Local mock server using TLS with a trusted example CA
|
|
4
|
+
protocol: https
|
|
5
|
+
port: 29443
|
|
6
|
+
connection:
|
|
7
|
+
mode: tls
|
|
8
|
+
cert: ../certs/server.crt
|
|
9
|
+
key: ../certs/server.key
|
|
10
|
+
endpoints:
|
|
11
|
+
- method: get
|
|
12
|
+
path: /health
|
|
13
|
+
status: 200
|
|
14
|
+
format: json
|
|
15
|
+
body:
|
|
16
|
+
status: ok
|
|
17
|
+
transport: tls
|
|
18
|
+
message: hello from tls mock
|
|
19
|
+
fallback:
|
|
20
|
+
status: 404
|
|
21
|
+
format: json
|
|
22
|
+
body:
|
|
23
|
+
error: not found
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type: test
|
|
2
|
+
title: TLS Mock Server Test
|
|
3
|
+
description: Starts a TLS mock server and calls it with the configured CA certificate
|
|
4
|
+
import:
|
|
5
|
+
server: ../server/mock_server.mmt
|
|
6
|
+
health: ../api/secure_health.mmt
|
|
7
|
+
steps:
|
|
8
|
+
- run: server
|
|
9
|
+
- call: health
|
|
10
|
+
id: result
|
|
11
|
+
expect:
|
|
12
|
+
status_code: 200
|
|
13
|
+
status_field: ok
|
|
14
|
+
transport: tls
|
|
15
|
+
report: all
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# mTLS Mock Server
|
|
2
|
+
|
|
3
|
+
This example starts a local mock server with `protocol: https` and `connection.mode: mtls`, then calls it from a Multimeter test using a client certificate.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
- `server/mock_server.mmt` defines the mTLS mock server on port `29444`.
|
|
8
|
+
- `api/secure_health.mmt` calls the fixed client URL `https://localhost:29444/health`.
|
|
9
|
+
- `test/secure_health_test.mmt` starts the server and calls the API.
|
|
10
|
+
- `multimeter.mmt` trusts the example CA certificate and configures client certificates.
|
|
11
|
+
- `certs/` contains long-lived local test certificates for this example:
|
|
12
|
+
- PEM: `ca.crt`, `client.crt`, `client.key`, `server.crt`, `server.key`
|
|
13
|
+
- PKCS#12: `client.p12` (passphrase `mmt`) — same client identity as `client.crt` + `client.key`
|
|
14
|
+
|
|
15
|
+
The env file shows both formats. Matching uses the first enabled client for `localhost:29444`, so the PEM client is used at runtime. Switch to `pfx: ./certs/client.p12` if you want to send the PKCS#12 bundle instead.
|
|
16
|
+
|
|
17
|
+
## Run
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
npx testlight run examples/professional/06_mtls_mock_server/test/secure_health_test.mmt
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The runner discovers the nearest `multimeter.mmt` automatically. You can still pass `--env-file examples/professional/06_mtls_mock_server/multimeter.mmt` explicitly if you prefer.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type: api
|
|
2
|
+
title: mTLS Mock Health
|
|
3
|
+
description: Client call to the local mTLS mock server
|
|
4
|
+
outputs:
|
|
5
|
+
status_code: status
|
|
6
|
+
status_field: body.status
|
|
7
|
+
transport: body.transport
|
|
8
|
+
message: body.message
|
|
9
|
+
url: https://localhost:29444/health
|
|
10
|
+
method: get
|
|
11
|
+
format: json
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type: env
|
|
2
|
+
certificates:
|
|
3
|
+
server_ca: ./certs/ca.crt
|
|
4
|
+
clients:
|
|
5
|
+
- name: mock-client
|
|
6
|
+
host: localhost:29444
|
|
7
|
+
cert: ./certs/client.crt
|
|
8
|
+
key: ./certs/client.key
|
|
9
|
+
- name: mock-client-p12
|
|
10
|
+
host: localhost:29444
|
|
11
|
+
pfx: ./certs/client.p12
|
|
12
|
+
passphrase_plain: mmt
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
type: server
|
|
2
|
+
title: mTLS Mock Server
|
|
3
|
+
description: Local mock server requiring a client certificate signed by the example CA
|
|
4
|
+
protocol: https
|
|
5
|
+
port: 29444
|
|
6
|
+
connection:
|
|
7
|
+
mode: mtls
|
|
8
|
+
cert: ../certs/server.crt
|
|
9
|
+
key: ../certs/server.key
|
|
10
|
+
client_ca: ../certs/ca.crt
|
|
11
|
+
endpoints:
|
|
12
|
+
- method: get
|
|
13
|
+
path: /health
|
|
14
|
+
status: 200
|
|
15
|
+
format: json
|
|
16
|
+
body:
|
|
17
|
+
status: ok
|
|
18
|
+
transport: mtls
|
|
19
|
+
message: hello from mtls mock
|
|
20
|
+
fallback:
|
|
21
|
+
status: 404
|
|
22
|
+
format: json
|
|
23
|
+
body:
|
|
24
|
+
error: not found
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type: test
|
|
2
|
+
title: mTLS Mock Server Test
|
|
3
|
+
description: Starts an mTLS mock server and calls it with the configured CA and client certificate
|
|
4
|
+
import:
|
|
5
|
+
server: ../server/mock_server.mmt
|
|
6
|
+
health: ../api/secure_health.mmt
|
|
7
|
+
steps:
|
|
8
|
+
- run: server
|
|
9
|
+
- call: health
|
|
10
|
+
id: result
|
|
11
|
+
expect:
|
|
12
|
+
status_code: 200
|
|
13
|
+
status_field: ok
|
|
14
|
+
transport: mtls
|
|
15
|
+
report: all
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Mock Server Timeout Simulation
|
|
2
|
+
|
|
3
|
+
This professional example demonstrates a request timeout against a delayed local mock server endpoint.
|
|
4
|
+
|
|
5
|
+
## Scenario
|
|
6
|
+
|
|
7
|
+
- The mock server exposes `GET /slow`.
|
|
8
|
+
- The endpoint has `delay: 3000`, so it waits 3 seconds before responding.
|
|
9
|
+
- The API request sets `timeout: 2000`, so it times out after 2 seconds.
|
|
10
|
+
|
|
11
|
+
## Files
|
|
12
|
+
|
|
13
|
+
| File | Purpose |
|
|
14
|
+
|---|---|
|
|
15
|
+
| `server/mock_server.mmt` | Defines the mock server on port `9107` with a delayed `/slow` endpoint |
|
|
16
|
+
| `api/slow_request.mmt` | Calls `/slow` with `timeout: 2000` |
|
|
17
|
+
| `test/slow_timeout_test.mmt` | Starts the mock server and calls the slow API |
|
|
18
|
+
| `suite.mmt` | Runs the timeout simulation as a suite |
|
|
19
|
+
|
|
20
|
+
## Run
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
npx testlight run examples/professional/07_mock_server_timeout/test/slow_timeout_test.mmt
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
This example is expected to fail with a request timeout because the request timeout is shorter than the mock response delay.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type: api
|
|
2
|
+
title: Slow request with short timeout
|
|
3
|
+
description: Calls a mock endpoint that waits 3 seconds, but this request times out after 2 seconds.
|
|
4
|
+
outputs:
|
|
5
|
+
status_code: status
|
|
6
|
+
response_time_ms: duration
|
|
7
|
+
url: http://localhost:9107/slow
|
|
8
|
+
method: get
|
|
9
|
+
timeout: 2000
|
|
10
|
+
format: json
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type: server
|
|
2
|
+
title: Timeout Simulation Mock Server
|
|
3
|
+
description: A mock server endpoint that waits 3 seconds before responding.
|
|
4
|
+
port: 9107
|
|
5
|
+
cors: true
|
|
6
|
+
endpoints:
|
|
7
|
+
- method: get
|
|
8
|
+
path: /slow
|
|
9
|
+
status: 200
|
|
10
|
+
format: json
|
|
11
|
+
body:
|
|
12
|
+
status: slow-ok
|
|
13
|
+
message: This response arrives after 3 seconds
|
|
14
|
+
delay: 3000
|
|
15
|
+
fallback:
|
|
16
|
+
status: 404
|
|
17
|
+
format: json
|
|
18
|
+
body:
|
|
19
|
+
error: Not Found
|