HttpRunner + Boomer

Overview

Go Reference Github Actions codecov Go Report Card FOSSA Status

HttpBoomer

HttpBoomer = HttpRunner + Boomer

HttpBoomer is a golang implementation of HttpRunner. Ideally, HttpBoomer will be fully compatible with HttpRunner, including testcase format and usage. What's more, HttpBoomer will integrate Boomer natively to be a better load generator for locust.

Key Features

Quick Start

Comments
  • feat: support think time for load testing #120

    feat: support think time for load testing #120

    支持思考时间,思考时间可选策略:

    1. 忽略用例中的思考时间
    2. 保持用例中的思考时间
    3. 在所设置的思考时间前后百分比的区间内随机取值作为该步的思考时间[min, max]
    4. 可设置思考时间的系数,对用例中的思考时间进行放缩

    注:如果设置limit参数,且值>0,则将限制以上策略最大思考时间为limit所设置值

    用例新增改变:

    1. 在用例config中新增字段:
    "think_time": {
                "strategy": "random_random_percentage",
                "setting": {
                    "min_percentage": 1,
                    "max_percentage": 1.5
                },  //根据策略限制类型,”random“策略时值为一个长度为2的slice,其余为整形、浮点型、数字字符串皆可,在解析配置时做类型校验转换
                "limit": 4
    },
    
    1. 测试步中新增步:
    {
              "name": "",
              "think_time": {
                  "name": "think time 1",
                  "time": 3
              }
    },
    

    说明:以上配置将限制思考时间在3-4秒之间

    opened by xucong053 1
  • feat: support api layer and global headers for testcase #94 #95

    feat: support api layer and global headers for testcase #94 #95

    feat: support global headers for testcase #95 feat: support API layer for testcase #94 feat: support referenced testcase by using specify testcase path in testcase script and override testcase config fix: decode failed when content-encoding is deflate fix: unstable RPS when high concurrency load testing

    opened by xucong053 1
  • feat: support customized setup/teardown hooks

    feat: support customized setup/teardown hooks

    Main Changes

    • support customized setup/teardown hooks (variable assignment not supported)
    • add setup_hook and teardown_hook demo function to the scaffold project go-plugin
    opened by bbx-winner 1
  • Update har2case.go

    Update har2case.go

    1、Fix har2caseCmd.Flags().BoolVarP(&genYAMLFlag, "to-yaml", "y", false, "convert to YAML format") -> JSON -> YAML 2、Change json flag detault to true 3、Fix Special circumstances

    opened by ZhouYixun 1
  • fix: incorrect assertion func and json number parse rule

    fix: incorrect assertion func and json number parse rule

    Main Changes

    1. fix incorrect assertion functions: greater_than, less_than, greater_or_equals, less_or_equals, adjust the sequence of parameters (actual and expected) of assertion function proto.
    2. fix incorrect json number parse rule.

    Ref: json.Unmarshal

    To unmarshal JSON into an interface value, Unmarshal stores one of these in the interface value: bool, for JSON booleans float64, for JSON numbers string, for JSON strings []interface{}, for JSON arrays map[string]interface{}, for JSON objects nil for JSON null

    1. fix panic when Assertions map key not found.
    2. fix unittest bad cases.
    opened by bbx-winner 1
  • feat: generate html reports for API testing #74

    feat: generate html reports for API testing #74

    for example: ./hrp run examples/parameters_test.json --gen-html-report --continue-on-failure report效果示例: image 点击log按钮获取详情:

    • request and response image
    • validators and statistics image 点击traceback按钮获取详情: image
    opened by xucong053 1
  • feat: record execution data for report #25

    feat: record execution data for report #25

    1. 新增记录执行数据-->summary.json
    2. 附加修复request中的url部分通过$符引用参数无效问题

    summary examples: python:

    {
        "success": true,
        "stat": {
            "testcases": {
                "total": 6,
                "success": 6,
                "fail": 0
            },
            "teststeps": {
                "total": 6,
                "failures": 0,
                "successes": 6
            }
        },
        "time": {
            "start_at": 1643105559.030703,
            "duration": 8.333352088928223
        },
        "platform": {
            "httprunner_version": "3.1.6",
            "python_version": "CPython 3.9.5",
            "platform": "macOS-11.6-x86_64-i386-64bit"
        },
        "details": [
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "case_id": "fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6",
                "time": {
                    "start_at": 1643105566.044075,
                    "start_at_iso_format": "2022-01-25T10:12:46.044075",
                    "duration": 1.3189170360565186
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "user_agent": "iOS/10.2",
                        "username": "test3",
                        "password": "333333"
                    },
                    "export_vars": {}
                },
                "log": "/Users/bytedance/Projects/python/github.com/httprunner/httprunner/logs/fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6.run.log",
                "records": [
                    {
                        "success": true,
                        "name": "get with params",
                        "data": {
                            "success": true,
                            "req_resps": [
                                {
                                    "request": {
                                        "method": "GET",
                                        "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1",
                                        "headers": {
                                            "User-Agent": "iOS/10.1,v1",
                                            "Accept-Encoding": "gzip, deflate, br",
                                            "Accept": "*/*",
                                            "Connection": "keep-alive",
                                            "HRUN-Request-ID": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                        },
                                        "cookies": {},
                                        "body": null
                                    },
                                    "response": {
                                        "status_code": 200,
                                        "headers": {
                                            "Date": "Tue, 25 Jan 2022 10:12:47 GMT",
                                            "Content-Type": "application/json; charset=utf-8",
                                            "Content-Length": "436",
                                            "Connection": "keep-alive",
                                            "ETag": "W/\"1b4-hR+MeFpY/lK7wXAoWxTXQbfON4I\"",
                                            "Vary": "Accept-Encoding",
                                            "set-cookie": "sails.sid=s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY; Path=/; HttpOnly"
                                        },
                                        "cookies": {
                                            "sails.sid": "s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY"
                                        },
                                        "encoding": "utf-8",
                                        "content_type": "application/json; charset=utf-8",
                                        "body": {
                                            "args": {
                                                "foo1": "test1",
                                                "foo2": "111111",
                                                "foo3": "iOS/10.1"
                                            },
                                            "headers": {
                                                "x-forwarded-proto": "https",
                                                "x-forwarded-port": "443",
                                                "host": "postman-echo.com",
                                                "x-amzn-trace-id": "Root=1-61efcd1f-0b55665f66c5397777997971",
                                                "user-agent": "iOS/10.1,v1",
                                                "accept-encoding": "gzip, deflate, br",
                                                "accept": "*/*",
                                                "hrun-request-id": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                            },
                                            "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1"
                                        }
                                    }
                                }
                            ],
                            "stat": {
                                "content_size": 0,
                                "response_time_ms": 1314.67,
                                "elapsed_ms": 310.38
                            },
                            "address": {
                                "client_ip": "10.90.206.241",
                                "client_port": 62270,
                                "server_ip": "52.6.12.176",
                                "server_port": 443
                            },
                            "validators": {
                                "validate_extractor": [
                                    {
                                        "comparator": "equal",
                                        "check": "status_code",
                                        "check_value": 200,
                                        "expect": 200,
                                        "expect_value": 200,
                                        "message": "",
                                        "check_result": "pass"
                                    }
                                ]
                            }
                        },
                        "export_vars": {}
                    }
                ]
            },
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "case_id": "fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6",
                "time": {
                    "start_at": 1643105566.044075,
                    "start_at_iso_format": "2022-01-25T10:12:46.044075",
                    "duration": 1.3189170360565186
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "user_agent": "iOS/10.2",
                        "username": "test3",
                        "password": "333333"
                    },
                    "export_vars": {}
                },
                "log": "/Users/bytedance/Projects/python/github.com/httprunner/httprunner/logs/fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6.run.log",
                "records": [
                    {
                        "success": true,
                        "name": "get with params",
                        "data": {
                            "success": true,
                            "req_resps": [
                                {
                                    "request": {
                                        "method": "GET",
                                        "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1",
                                        "headers": {
                                            "User-Agent": "iOS/10.1,v1",
                                            "Accept-Encoding": "gzip, deflate, br",
                                            "Accept": "*/*",
                                            "Connection": "keep-alive",
                                            "HRUN-Request-ID": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                        },
                                        "cookies": {},
                                        "body": null
                                    },
                                    "response": {
                                        "status_code": 200,
                                        "headers": {
                                            "Date": "Tue, 25 Jan 2022 10:12:47 GMT",
                                            "Content-Type": "application/json; charset=utf-8",
                                            "Content-Length": "436",
                                            "Connection": "keep-alive",
                                            "ETag": "W/\"1b4-hR+MeFpY/lK7wXAoWxTXQbfON4I\"",
                                            "Vary": "Accept-Encoding",
                                            "set-cookie": "sails.sid=s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY; Path=/; HttpOnly"
                                        },
                                        "cookies": {
                                            "sails.sid": "s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY"
                                        },
                                        "encoding": "utf-8",
                                        "content_type": "application/json; charset=utf-8",
                                        "body": {
                                            "args": {
                                                "foo1": "test1",
                                                "foo2": "111111",
                                                "foo3": "iOS/10.1"
                                            },
                                            "headers": {
                                                "x-forwarded-proto": "https",
                                                "x-forwarded-port": "443",
                                                "host": "postman-echo.com",
                                                "x-amzn-trace-id": "Root=1-61efcd1f-0b55665f66c5397777997971",
                                                "user-agent": "iOS/10.1,v1",
                                                "accept-encoding": "gzip, deflate, br",
                                                "accept": "*/*",
                                                "hrun-request-id": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                            },
                                            "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1"
                                        }
                                    }
                                }
                            ],
                            "stat": {
                                "content_size": 0,
                                "response_time_ms": 1314.67,
                                "elapsed_ms": 310.38
                            },
                            "address": {
                                "client_ip": "10.90.206.241",
                                "client_port": 62270,
                                "server_ip": "52.6.12.176",
                                "server_port": 443
                            },
                            "validators": {
                                "validate_extractor": [
                                    {
                                        "comparator": "equal",
                                        "check": "status_code",
                                        "check_value": 200,
                                        "expect": 200,
                                        "expect_value": 200,
                                        "message": "",
                                        "check_result": "pass"
                                    }
                                ]
                            }
                        },
                        "export_vars": {}
                    }
                ]
            },
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "case_id": "fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6",
                "time": {
                    "start_at": 1643105566.044075,
                    "start_at_iso_format": "2022-01-25T10:12:46.044075",
                    "duration": 1.3189170360565186
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "user_agent": "iOS/10.2",
                        "username": "test3",
                        "password": "333333"
                    },
                    "export_vars": {}
                },
                "log": "/Users/bytedance/Projects/python/github.com/httprunner/httprunner/logs/fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6.run.log",
                "records": [
                    {
                        "success": true,
                        "name": "get with params",
                        "data": {
                            "success": true,
                            "req_resps": [
                                {
                                    "request": {
                                        "method": "GET",
                                        "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1",
                                        "headers": {
                                            "User-Agent": "iOS/10.1,v1",
                                            "Accept-Encoding": "gzip, deflate, br",
                                            "Accept": "*/*",
                                            "Connection": "keep-alive",
                                            "HRUN-Request-ID": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                        },
                                        "cookies": {},
                                        "body": null
                                    },
                                    "response": {
                                        "status_code": 200,
                                        "headers": {
                                            "Date": "Tue, 25 Jan 2022 10:12:47 GMT",
                                            "Content-Type": "application/json; charset=utf-8",
                                            "Content-Length": "436",
                                            "Connection": "keep-alive",
                                            "ETag": "W/\"1b4-hR+MeFpY/lK7wXAoWxTXQbfON4I\"",
                                            "Vary": "Accept-Encoding",
                                            "set-cookie": "sails.sid=s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY; Path=/; HttpOnly"
                                        },
                                        "cookies": {
                                            "sails.sid": "s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY"
                                        },
                                        "encoding": "utf-8",
                                        "content_type": "application/json; charset=utf-8",
                                        "body": {
                                            "args": {
                                                "foo1": "test1",
                                                "foo2": "111111",
                                                "foo3": "iOS/10.1"
                                            },
                                            "headers": {
                                                "x-forwarded-proto": "https",
                                                "x-forwarded-port": "443",
                                                "host": "postman-echo.com",
                                                "x-amzn-trace-id": "Root=1-61efcd1f-0b55665f66c5397777997971",
                                                "user-agent": "iOS/10.1,v1",
                                                "accept-encoding": "gzip, deflate, br",
                                                "accept": "*/*",
                                                "hrun-request-id": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                            },
                                            "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1"
                                        }
                                    }
                                }
                            ],
                            "stat": {
                                "content_size": 0,
                                "response_time_ms": 1314.67,
                                "elapsed_ms": 310.38
                            },
                            "address": {
                                "client_ip": "10.90.206.241",
                                "client_port": 62270,
                                "server_ip": "52.6.12.176",
                                "server_port": 443
                            },
                            "validators": {
                                "validate_extractor": [
                                    {
                                        "comparator": "equal",
                                        "check": "status_code",
                                        "check_value": 200,
                                        "expect": 200,
                                        "expect_value": 200,
                                        "message": "",
                                        "check_result": "pass"
                                    }
                                ]
                            }
                        },
                        "export_vars": {}
                    }
                ]
            },
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "case_id": "fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6",
                "time": {
                    "start_at": 1643105566.044075,
                    "start_at_iso_format": "2022-01-25T10:12:46.044075",
                    "duration": 1.3189170360565186
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "user_agent": "iOS/10.2",
                        "username": "test3",
                        "password": "333333"
                    },
                    "export_vars": {}
                },
                "log": "/Users/bytedance/Projects/python/github.com/httprunner/httprunner/logs/fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6.run.log",
                "records": [
                    {
                        "success": true,
                        "name": "get with params",
                        "data": {
                            "success": true,
                            "req_resps": [
                                {
                                    "request": {
                                        "method": "GET",
                                        "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1",
                                        "headers": {
                                            "User-Agent": "iOS/10.1,v1",
                                            "Accept-Encoding": "gzip, deflate, br",
                                            "Accept": "*/*",
                                            "Connection": "keep-alive",
                                            "HRUN-Request-ID": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                        },
                                        "cookies": {},
                                        "body": null
                                    },
                                    "response": {
                                        "status_code": 200,
                                        "headers": {
                                            "Date": "Tue, 25 Jan 2022 10:12:47 GMT",
                                            "Content-Type": "application/json; charset=utf-8",
                                            "Content-Length": "436",
                                            "Connection": "keep-alive",
                                            "ETag": "W/\"1b4-hR+MeFpY/lK7wXAoWxTXQbfON4I\"",
                                            "Vary": "Accept-Encoding",
                                            "set-cookie": "sails.sid=s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY; Path=/; HttpOnly"
                                        },
                                        "cookies": {
                                            "sails.sid": "s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY"
                                        },
                                        "encoding": "utf-8",
                                        "content_type": "application/json; charset=utf-8",
                                        "body": {
                                            "args": {
                                                "foo1": "test1",
                                                "foo2": "111111",
                                                "foo3": "iOS/10.1"
                                            },
                                            "headers": {
                                                "x-forwarded-proto": "https",
                                                "x-forwarded-port": "443",
                                                "host": "postman-echo.com",
                                                "x-amzn-trace-id": "Root=1-61efcd1f-0b55665f66c5397777997971",
                                                "user-agent": "iOS/10.1,v1",
                                                "accept-encoding": "gzip, deflate, br",
                                                "accept": "*/*",
                                                "hrun-request-id": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                            },
                                            "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1"
                                        }
                                    }
                                }
                            ],
                            "stat": {
                                "content_size": 0,
                                "response_time_ms": 1314.67,
                                "elapsed_ms": 310.38
                            },
                            "address": {
                                "client_ip": "10.90.206.241",
                                "client_port": 62270,
                                "server_ip": "52.6.12.176",
                                "server_port": 443
                            },
                            "validators": {
                                "validate_extractor": [
                                    {
                                        "comparator": "equal",
                                        "check": "status_code",
                                        "check_value": 200,
                                        "expect": 200,
                                        "expect_value": 200,
                                        "message": "",
                                        "check_result": "pass"
                                    }
                                ]
                            }
                        },
                        "export_vars": {}
                    }
                ]
            },
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "case_id": "fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6",
                "time": {
                    "start_at": 1643105566.044075,
                    "start_at_iso_format": "2022-01-25T10:12:46.044075",
                    "duration": 1.3189170360565186
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "user_agent": "iOS/10.2",
                        "username": "test3",
                        "password": "333333"
                    },
                    "export_vars": {}
                },
                "log": "/Users/bytedance/Projects/python/github.com/httprunner/httprunner/logs/fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6.run.log",
                "records": [
                    {
                        "success": true,
                        "name": "get with params",
                        "data": {
                            "success": true,
                            "req_resps": [
                                {
                                    "request": {
                                        "method": "GET",
                                        "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1",
                                        "headers": {
                                            "User-Agent": "iOS/10.1,v1",
                                            "Accept-Encoding": "gzip, deflate, br",
                                            "Accept": "*/*",
                                            "Connection": "keep-alive",
                                            "HRUN-Request-ID": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                        },
                                        "cookies": {},
                                        "body": null
                                    },
                                    "response": {
                                        "status_code": 200,
                                        "headers": {
                                            "Date": "Tue, 25 Jan 2022 10:12:47 GMT",
                                            "Content-Type": "application/json; charset=utf-8",
                                            "Content-Length": "436",
                                            "Connection": "keep-alive",
                                            "ETag": "W/\"1b4-hR+MeFpY/lK7wXAoWxTXQbfON4I\"",
                                            "Vary": "Accept-Encoding",
                                            "set-cookie": "sails.sid=s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY; Path=/; HttpOnly"
                                        },
                                        "cookies": {
                                            "sails.sid": "s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY"
                                        },
                                        "encoding": "utf-8",
                                        "content_type": "application/json; charset=utf-8",
                                        "body": {
                                            "args": {
                                                "foo1": "test1",
                                                "foo2": "111111",
                                                "foo3": "iOS/10.1"
                                            },
                                            "headers": {
                                                "x-forwarded-proto": "https",
                                                "x-forwarded-port": "443",
                                                "host": "postman-echo.com",
                                                "x-amzn-trace-id": "Root=1-61efcd1f-0b55665f66c5397777997971",
                                                "user-agent": "iOS/10.1,v1",
                                                "accept-encoding": "gzip, deflate, br",
                                                "accept": "*/*",
                                                "hrun-request-id": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                            },
                                            "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1"
                                        }
                                    }
                                }
                            ],
                            "stat": {
                                "content_size": 0,
                                "response_time_ms": 1314.67,
                                "elapsed_ms": 310.38
                            },
                            "address": {
                                "client_ip": "10.90.206.241",
                                "client_port": 62270,
                                "server_ip": "52.6.12.176",
                                "server_port": 443
                            },
                            "validators": {
                                "validate_extractor": [
                                    {
                                        "comparator": "equal",
                                        "check": "status_code",
                                        "check_value": 200,
                                        "expect": 200,
                                        "expect_value": 200,
                                        "message": "",
                                        "check_result": "pass"
                                    }
                                ]
                            }
                        },
                        "export_vars": {}
                    }
                ]
            },
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "case_id": "fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6",
                "time": {
                    "start_at": 1643105566.044075,
                    "start_at_iso_format": "2022-01-25T10:12:46.044075",
                    "duration": 1.3189170360565186
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "user_agent": "iOS/10.2",
                        "username": "test3",
                        "password": "333333"
                    },
                    "export_vars": {}
                },
                "log": "/Users/bytedance/Projects/python/github.com/httprunner/httprunner/logs/fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6.run.log",
                "records": [
                    {
                        "success": true,
                        "name": "get with params",
                        "data": {
                            "success": true,
                            "req_resps": [
                                {
                                    "request": {
                                        "method": "GET",
                                        "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1",
                                        "headers": {
                                            "User-Agent": "iOS/10.1,v1",
                                            "Accept-Encoding": "gzip, deflate, br",
                                            "Accept": "*/*",
                                            "Connection": "keep-alive",
                                            "HRUN-Request-ID": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                        },
                                        "cookies": {},
                                        "body": null
                                    },
                                    "response": {
                                        "status_code": 200,
                                        "headers": {
                                            "Date": "Tue, 25 Jan 2022 10:12:47 GMT",
                                            "Content-Type": "application/json; charset=utf-8",
                                            "Content-Length": "436",
                                            "Connection": "keep-alive",
                                            "ETag": "W/\"1b4-hR+MeFpY/lK7wXAoWxTXQbfON4I\"",
                                            "Vary": "Accept-Encoding",
                                            "set-cookie": "sails.sid=s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY; Path=/; HttpOnly"
                                        },
                                        "cookies": {
                                            "sails.sid": "s%3AoaXWmC-NCeSZbvEYQgMd1Pfvyale98zN.t5ViXj0LpOqJ%2BhDcpPtFsn14m4lOUXE3dfpIHOGLSBY"
                                        },
                                        "encoding": "utf-8",
                                        "content_type": "application/json; charset=utf-8",
                                        "body": {
                                            "args": {
                                                "foo1": "test1",
                                                "foo2": "111111",
                                                "foo3": "iOS/10.1"
                                            },
                                            "headers": {
                                                "x-forwarded-proto": "https",
                                                "x-forwarded-port": "443",
                                                "host": "postman-echo.com",
                                                "x-amzn-trace-id": "Root=1-61efcd1f-0b55665f66c5397777997971",
                                                "user-agent": "iOS/10.1,v1",
                                                "accept-encoding": "gzip, deflate, br",
                                                "accept": "*/*",
                                                "hrun-request-id": "HRUN-fa51f1e9-966a-4591-a46f-a2f1b8c3c6c6-566044"
                                            },
                                            "url": "https://postman-echo.com/get?foo1=test1&foo2=111111&foo3=iOS%2F10.1"
                                        }
                                    }
                                }
                            ],
                            "stat": {
                                "content_size": 0,
                                "response_time_ms": 1314.67,
                                "elapsed_ms": 310.38
                            },
                            "address": {
                                "client_ip": "10.90.206.241",
                                "client_port": 62270,
                                "server_ip": "52.6.12.176",
                                "server_port": 443
                            },
                            "validators": {
                                "validate_extractor": [
                                    {
                                        "comparator": "equal",
                                        "check": "status_code",
                                        "check_value": 200,
                                        "expect": 200,
                                        "expect_value": 200,
                                        "message": "",
                                        "check_result": "pass"
                                    }
                                ]
                            }
                        },
                        "export_vars": {}
                    }
                ]
            }
        ]
    }
    

    golang:

    {
        "success": true,
        "stat": {
            "testcases": {
                "total": 6,
                "success": 6
            },
            "teststeps": {
                "total": 6,
                "successes": 6
            }
        },
        "time": {
            "start_at": "2022-01-25T21:16:46.372972+08:00",
            "duration": 3.081289221
        },
        "platform": {
            "hrp_version": "v0.5.2",
            "go_version": "go1.16.11",
            "platform": "darwin-amd64"
        },
        "details": [
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "time": {
                    "start_at": "2022-01-25T21:16:46.373128+08:00",
                    "duration": 1.256897586
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "password": "222222",
                        "user_agent": "iOS/10.1",
                        "username": "test2"
                    },
                    "export_vars": {
                        "app_version": "v1"
                    }
                },
                "records": [
                    {
                        "name": "get with params",
                        "step_type": "request",
                        "success": true,
                        "elapsed_ms": 1256,
                        "data": {
                            "success": true,
                            "req_resps": {
                                "request": {
                                    "method": "GET",
                                    "url": "https://postman-echo.com/get",
                                    "params": {
                                        "foo1": "test2",
                                        "foo2": "222222",
                                        "foo3": "iOS/10.1"
                                    },
                                    "headers": {
                                        "User-Agent": "iOS/10.1,v1"
                                    }
                                },
                                "response": {
                                    "body": {
                                        "args": {
                                            "foo1": "test2",
                                            "foo2": "222222",
                                            "foo3": "iOS/10.1"
                                        },
                                        "headers": {
                                            "accept-encoding": "gzip",
                                            "host": "postman-echo.com",
                                            "user-agent": "iOS/10.1,v1",
                                            "x-amzn-trace-id": "Root=1-61eff83f-153326e07e826dfc184f744a",
                                            "x-forwarded-port": "443",
                                            "x-forwarded-proto": "https"
                                        },
                                        "url": "https://postman-echo.com/get?foo1=test2\u0026foo2=222222\u0026foo3=iOS%2F10.1"
                                    },
                                    "cookies": {
                                        "sails.sid": "s%3AvyCE4K8E0Pc6clzMeDHCijIkHBT3bHQk.50RiQzAUExoH6fZ9PN8%2Futbge8ivO9anacFgqyx3eGg"
                                    },
                                    "headers": {
                                        "Connection": "keep-alive",
                                        "Content-Length": "339",
                                        "Content-Type": "application/json; charset=utf-8",
                                        "Date": "Tue, 25 Jan 2022 13:16:47 GMT",
                                        "Etag": "W/\"153-IiMiM7CEs916LbYKJZV4RDJ1kzs\"",
                                        "Set-Cookie": "sails.sid=s%3AvyCE4K8E0Pc6clzMeDHCijIkHBT3bHQk.50RiQzAUExoH6fZ9PN8%2Futbge8ivO9anacFgqyx3eGg; Path=/; HttpOnly",
                                        "Vary": "Accept-Encoding"
                                    },
                                    "status_code": 200
                                }
                            },
                            "validators": [
                                {
                                    "check": 200,
                                    "expect": 200,
                                    "comparator": "equals",
                                    "check_result": "pass",
                                    "message": "check status code"
                                },
                                {
                                    "check": "iOS/10.1",
                                    "expect": "iOS/10.3",
                                    "comparator": "not_equal",
                                    "check_result": "pass",
                                    "message": "check app version"
                                }
                            ]
                        },
                        "content_size": 339,
                        "export_vars": {
                            "varFoo1": "test2"
                        }
                    }
                ]
            },
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "time": {
                    "start_at": "2022-01-25T21:16:47.630216+08:00",
                    "duration": 0.279427926
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "password": "333333",
                        "user_agent": "iOS/10.2",
                        "username": "test3"
                    },
                    "export_vars": {
                        "app_version": "v1"
                    }
                },
                "records": [
                    {
                        "name": "get with params",
                        "step_type": "request",
                        "success": true,
                        "elapsed_ms": 278,
                        "data": {
                            "success": true,
                            "req_resps": {
                                "request": {
                                    "method": "GET",
                                    "url": "https://postman-echo.com/get",
                                    "params": {
                                        "foo1": "test3",
                                        "foo2": "333333",
                                        "foo3": "iOS/10.2"
                                    },
                                    "headers": {
                                        "User-Agent": "iOS/10.1,v1"
                                    }
                                },
                                "response": {
                                    "body": {
                                        "args": {
                                            "foo1": "test3",
                                            "foo2": "333333",
                                            "foo3": "iOS/10.2"
                                        },
                                        "headers": {
                                            "accept-encoding": "gzip",
                                            "host": "postman-echo.com",
                                            "user-agent": "iOS/10.1,v1",
                                            "x-amzn-trace-id": "Root=1-61eff83f-570465043297b14f535ac0b1",
                                            "x-forwarded-port": "443",
                                            "x-forwarded-proto": "https"
                                        },
                                        "url": "https://postman-echo.com/get?foo1=test3\u0026foo2=333333\u0026foo3=iOS%2F10.2"
                                    },
                                    "cookies": {
                                        "sails.sid": "s%3AEz9zpr6QZ1mIvx3j93vjbLdg-m7BqCBO.grdHQpmTPHLHubN5CkrMhCrRfPnO70PEixmo%2FufkojA"
                                    },
                                    "headers": {
                                        "Connection": "keep-alive",
                                        "Content-Length": "339",
                                        "Content-Type": "application/json; charset=utf-8",
                                        "Date": "Tue, 25 Jan 2022 13:16:47 GMT",
                                        "Etag": "W/\"153-jXjjQ5loclGBYP2Rddzd4GV3ZEk\"",
                                        "Set-Cookie": "sails.sid=s%3AEz9zpr6QZ1mIvx3j93vjbLdg-m7BqCBO.grdHQpmTPHLHubN5CkrMhCrRfPnO70PEixmo%2FufkojA; Path=/; HttpOnly",
                                        "Vary": "Accept-Encoding"
                                    },
                                    "status_code": 200
                                }
                            },
                            "validators": [
                                {
                                    "check": 200,
                                    "expect": 200,
                                    "comparator": "equals",
                                    "check_result": "pass",
                                    "message": "check status code"
                                },
                                {
                                    "check": "iOS/10.2",
                                    "expect": "iOS/10.3",
                                    "comparator": "not_equal",
                                    "check_result": "pass",
                                    "message": "check app version"
                                }
                            ]
                        },
                        "content_size": 339,
                        "export_vars": {
                            "varFoo1": "test3"
                        }
                    }
                ]
            },
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "time": {
                    "start_at": "2022-01-25T21:16:47.909924+08:00",
                    "duration": 0.48813689
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "password": "333333",
                        "user_agent": "iOS/10.1",
                        "username": "test3"
                    },
                    "export_vars": {
                        "app_version": "v1"
                    }
                },
                "records": [
                    {
                        "name": "get with params",
                        "step_type": "request",
                        "success": true,
                        "elapsed_ms": 487,
                        "data": {
                            "success": true,
                            "req_resps": {
                                "request": {
                                    "method": "GET",
                                    "url": "https://postman-echo.com/get",
                                    "params": {
                                        "foo1": "test3",
                                        "foo2": "333333",
                                        "foo3": "iOS/10.1"
                                    },
                                    "headers": {
                                        "User-Agent": "iOS/10.1,v1"
                                    }
                                },
                                "response": {
                                    "body": {
                                        "args": {
                                            "foo1": "test3",
                                            "foo2": "333333",
                                            "foo3": "iOS/10.1"
                                        },
                                        "headers": {
                                            "accept-encoding": "gzip",
                                            "host": "postman-echo.com",
                                            "user-agent": "iOS/10.1,v1",
                                            "x-amzn-trace-id": "Root=1-61eff840-7732e5e20fed93947f7ac80d",
                                            "x-forwarded-port": "443",
                                            "x-forwarded-proto": "https"
                                        },
                                        "url": "https://postman-echo.com/get?foo1=test3\u0026foo2=333333\u0026foo3=iOS%2F10.1"
                                    },
                                    "cookies": {
                                        "sails.sid": "s%3AzffCiV7eUvBid80txdee4ji5tnZHEX--.UDYoht89T4zFrnvkajrRBAnqrGmYK3UPEZc6en7JbdU"
                                    },
                                    "headers": {
                                        "Connection": "keep-alive",
                                        "Content-Length": "339",
                                        "Content-Type": "application/json; charset=utf-8",
                                        "Date": "Tue, 25 Jan 2022 13:16:48 GMT",
                                        "Etag": "W/\"153-F8kBKJScNuffLxfItueNpJDwhOU\"",
                                        "Set-Cookie": "sails.sid=s%3AzffCiV7eUvBid80txdee4ji5tnZHEX--.UDYoht89T4zFrnvkajrRBAnqrGmYK3UPEZc6en7JbdU; Path=/; HttpOnly",
                                        "Vary": "Accept-Encoding"
                                    },
                                    "status_code": 200
                                }
                            },
                            "validators": [
                                {
                                    "check": 200,
                                    "expect": 200,
                                    "comparator": "equals",
                                    "check_result": "pass",
                                    "message": "check status code"
                                },
                                {
                                    "check": "iOS/10.1",
                                    "expect": "iOS/10.3",
                                    "comparator": "not_equal",
                                    "check_result": "pass",
                                    "message": "check app version"
                                }
                            ]
                        },
                        "content_size": 339,
                        "export_vars": {
                            "varFoo1": "test3"
                        }
                    }
                ]
            },
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "time": {
                    "start_at": "2022-01-25T21:16:48.398358+08:00",
                    "duration": 0.28169601
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "password": "222222",
                        "user_agent": "iOS/10.2",
                        "username": "test2"
                    },
                    "export_vars": {
                        "app_version": "v1"
                    }
                },
                "records": [
                    {
                        "name": "get with params",
                        "step_type": "request",
                        "success": true,
                        "elapsed_ms": 280,
                        "data": {
                            "success": true,
                            "req_resps": {
                                "request": {
                                    "method": "GET",
                                    "url": "https://postman-echo.com/get",
                                    "params": {
                                        "foo1": "test2",
                                        "foo2": "222222",
                                        "foo3": "iOS/10.2"
                                    },
                                    "headers": {
                                        "User-Agent": "iOS/10.1,v1"
                                    }
                                },
                                "response": {
                                    "body": {
                                        "args": {
                                            "foo1": "test2",
                                            "foo2": "222222",
                                            "foo3": "iOS/10.2"
                                        },
                                        "headers": {
                                            "accept-encoding": "gzip",
                                            "host": "postman-echo.com",
                                            "user-agent": "iOS/10.1,v1",
                                            "x-amzn-trace-id": "Root=1-61eff840-0dcbbaf73943af991e3ace4e",
                                            "x-forwarded-port": "443",
                                            "x-forwarded-proto": "https"
                                        },
                                        "url": "https://postman-echo.com/get?foo1=test2\u0026foo2=222222\u0026foo3=iOS%2F10.2"
                                    },
                                    "cookies": {
                                        "sails.sid": "s%3AMf-L0EEnGipgYs09co9m2K2rIARdYa45.TfizCEpRqlarx%2BkBv9Q0odZsyCkabNvSm5bsrIPh%2BOg"
                                    },
                                    "headers": {
                                        "Connection": "keep-alive",
                                        "Content-Length": "339",
                                        "Content-Type": "application/json; charset=utf-8",
                                        "Date": "Tue, 25 Jan 2022 13:16:48 GMT",
                                        "Etag": "W/\"153-BCDMCsBPiCNXcZLebovcmy/yhss\"",
                                        "Set-Cookie": "sails.sid=s%3AMf-L0EEnGipgYs09co9m2K2rIARdYa45.TfizCEpRqlarx%2BkBv9Q0odZsyCkabNvSm5bsrIPh%2BOg; Path=/; HttpOnly",
                                        "Vary": "Accept-Encoding"
                                    },
                                    "status_code": 200
                                }
                            },
                            "validators": [
                                {
                                    "check": 200,
                                    "expect": 200,
                                    "comparator": "equals",
                                    "check_result": "pass",
                                    "message": "check status code"
                                },
                                {
                                    "check": "iOS/10.2",
                                    "expect": "iOS/10.3",
                                    "comparator": "not_equal",
                                    "check_result": "pass",
                                    "message": "check app version"
                                }
                            ]
                        },
                        "content_size": 339,
                        "export_vars": {
                            "varFoo1": "test2"
                        }
                    }
                ]
            },
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "time": {
                    "start_at": "2022-01-25T21:16:48.680334+08:00",
                    "duration": 0.280148839
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "password": "222222",
                        "user_agent": "iOS/10.1",
                        "username": "test2"
                    },
                    "export_vars": {
                        "app_version": "v1"
                    }
                },
                "records": [
                    {
                        "name": "get with params",
                        "step_type": "request",
                        "success": true,
                        "elapsed_ms": 279,
                        "data": {
                            "success": true,
                            "req_resps": {
                                "request": {
                                    "method": "GET",
                                    "url": "https://postman-echo.com/get",
                                    "params": {
                                        "foo1": "test2",
                                        "foo2": "222222",
                                        "foo3": "iOS/10.1"
                                    },
                                    "headers": {
                                        "User-Agent": "iOS/10.1,v1"
                                    }
                                },
                                "response": {
                                    "body": {
                                        "args": {
                                            "foo1": "test2",
                                            "foo2": "222222",
                                            "foo3": "iOS/10.1"
                                        },
                                        "headers": {
                                            "accept-encoding": "gzip",
                                            "host": "postman-echo.com",
                                            "user-agent": "iOS/10.1,v1",
                                            "x-amzn-trace-id": "Root=1-61eff841-0e3ec9943d558a8e50536b2e",
                                            "x-forwarded-port": "443",
                                            "x-forwarded-proto": "https"
                                        },
                                        "url": "https://postman-echo.com/get?foo1=test2\u0026foo2=222222\u0026foo3=iOS%2F10.1"
                                    },
                                    "cookies": {
                                        "sails.sid": "s%3A1v_S7nb-OAFKAsOzOFRuck7jIVQDDP2K.YcZhGCYypvlPrHTLx6d9UnqmEX9%2BTxTHr6SCPPRaQWk"
                                    },
                                    "headers": {
                                        "Connection": "keep-alive",
                                        "Content-Length": "339",
                                        "Content-Type": "application/json; charset=utf-8",
                                        "Date": "Tue, 25 Jan 2022 13:16:49 GMT",
                                        "Etag": "W/\"153-1nL6mgrwl+7DcYyd2Ew5cqVEAwk\"",
                                        "Set-Cookie": "sails.sid=s%3A1v_S7nb-OAFKAsOzOFRuck7jIVQDDP2K.YcZhGCYypvlPrHTLx6d9UnqmEX9%2BTxTHr6SCPPRaQWk; Path=/; HttpOnly",
                                        "Vary": "Accept-Encoding"
                                    },
                                    "status_code": 200
                                }
                            },
                            "validators": [
                                {
                                    "check": 200,
                                    "expect": 200,
                                    "comparator": "equals",
                                    "check_result": "pass",
                                    "message": "check status code"
                                },
                                {
                                    "check": "iOS/10.1",
                                    "expect": "iOS/10.3",
                                    "comparator": "not_equal",
                                    "check_result": "pass",
                                    "message": "check app version"
                                }
                            ]
                        },
                        "content_size": 339,
                        "export_vars": {
                            "varFoo1": "test2"
                        }
                    }
                ]
            },
            {
                "name": "request methods testcase: validate with parameters",
                "success": true,
                "time": {
                    "start_at": "2022-01-25T21:16:48.960785+08:00",
                    "duration": 0.493498128
                },
                "in_out": {
                    "config_vars": {
                        "app_version": "v1",
                        "password": "222222",
                        "user_agent": "iOS/10.2",
                        "username": "test2"
                    },
                    "export_vars": {
                        "app_version": "v1"
                    }
                },
                "records": [
                    {
                        "name": "get with params",
                        "step_type": "request",
                        "success": true,
                        "elapsed_ms": 492,
                        "data": {
                            "success": true,
                            "req_resps": {
                                "request": {
                                    "method": "GET",
                                    "url": "https://postman-echo.com/get",
                                    "params": {
                                        "foo1": "test2",
                                        "foo2": "222222",
                                        "foo3": "iOS/10.2"
                                    },
                                    "headers": {
                                        "User-Agent": "iOS/10.1,v1"
                                    }
                                },
                                "response": {
                                    "body": {
                                        "args": {
                                            "foo1": "test2",
                                            "foo2": "222222",
                                            "foo3": "iOS/10.2"
                                        },
                                        "headers": {
                                            "accept-encoding": "gzip",
                                            "host": "postman-echo.com",
                                            "user-agent": "iOS/10.1,v1",
                                            "x-amzn-trace-id": "Root=1-61eff841-43592b1142a9b290639fa18f",
                                            "x-forwarded-port": "443",
                                            "x-forwarded-proto": "https"
                                        },
                                        "url": "https://postman-echo.com/get?foo1=test2\u0026foo2=222222\u0026foo3=iOS%2F10.2"
                                    },
                                    "cookies": {
                                        "sails.sid": "s%3AwmRBJDOGxYQ0XfhsrG4tEwy7BmsL-HUR.AaIhEqy7S0RPP7EelDlzq2fnki4teFaqLjSrG9VYKvo"
                                    },
                                    "headers": {
                                        "Connection": "keep-alive",
                                        "Content-Length": "339",
                                        "Content-Type": "application/json; charset=utf-8",
                                        "Date": "Tue, 25 Jan 2022 13:16:49 GMT",
                                        "Etag": "W/\"153-NTT3AqeHSqfLPhBpU10xqDCrE60\"",
                                        "Set-Cookie": "sails.sid=s%3AwmRBJDOGxYQ0XfhsrG4tEwy7BmsL-HUR.AaIhEqy7S0RPP7EelDlzq2fnki4teFaqLjSrG9VYKvo; Path=/; HttpOnly",
                                        "Vary": "Accept-Encoding"
                                    },
                                    "status_code": 200
                                }
                            },
                            "validators": [
                                {
                                    "check": 200,
                                    "expect": 200,
                                    "comparator": "equals",
                                    "check_result": "pass",
                                    "message": "check status code"
                                },
                                {
                                    "check": "iOS/10.2",
                                    "expect": "iOS/10.3",
                                    "comparator": "not_equal",
                                    "check_result": "pass",
                                    "message": "check app version"
                                }
                            ]
                        },
                        "content_size": 339,
                        "export_vars": {
                            "varFoo1": "test2"
                        }
                    }
                ]
            }
        ]
    }
    
    opened by xucong053 1
  • feat: support rendezvous after spawn done

    feat: support rendezvous after spawn done

    集合点参数: Number :触发集合点释放的虚拟用户数量,int64,范围 (0, all] Percent:触发集合点释放的虚拟用户百分比,float32,范围 (0, 1] Timeout:虚拟用户到达集合点之间的间隔时间的最大值,int64,单位毫秒

    备注: 数量和百分比参数为二选一并且范围合法,否则两个参数都会被设为默认值,默认值为全部虚拟用户 超时时间如果没有制定,默认值为 5000 ms

    opened by bbx-winner 1
  • fix: inaccurate to report stats for total; feat: add average response time in total

    fix: inaccurate to report stats for total; feat: add average response time in total

    修改前最后一次总体数据统计: Current time: 2022/01/19 20:32:09, Users: 500, State: quitting, Total RPS: 1.3, Total Fail Ratio: 0.0% Accumulated Transactions: 19956 Passed, 44 Failed 修改后最后一次总体数据统计: Current time: 2022/01/19 20:30:48, Users: 500, State: quitting, Total RPS: 377.4, Total Average Response Time: 914.5ms, Total Fail Ratio: 0.1% Accumulated Transactions: 19987 Passed, 13 Failed

    opened by xucong053 1
  • refactor go plugin

    refactor go plugin

    • feat: add github.com/httprunner/hrp/plugin sub-module
    • feat: add scaffold for plugin
    • feat: catch Interrupt and SIGTERM signals to ensure plugin quitted
    • change: report event for initializing plugin
    • doc: add plugin docs
    • refactor: plugin structure
    opened by debugtalk 1
  • feat: support rendezvous

    feat: support rendezvous

    集合点参数:

    • Number :触发集合点释放的虚拟用户数量,int64,范围 (0, all]
    • Percent:触发集合点释放的虚拟用户百分比,float32,范围 (0, 1]
    • Timeout:虚拟用户到达集合点之间的间隔时间的最大值,int64,单位毫秒

    备注:

    • 数量和百分比参数为二选一,如果同时指定,则默认值为全部虚拟用户
    • 超时时间如果没有制定,默认值为 5000 ms
    opened by bbx-winner 1
Releases(v0.8.0)
Owner
HttpRunner
HttpRunner
HttpRunner+ is the next generation of HttpRunner, written in golang

hrp (HttpRunner+) hrp is a golang implementation of HttpRunner. Ideally, hrp will be fully compatible with HttpRunner, including testcase format and u

HttpRunner 80 Sep 28, 2022
go http wrapper for boomer

什么是 go-httpwrapper? 如果你想快速实现http协议的分布式压测,那么go-httpwrapper将会是一个不错的选择! Boomer 是Locust框架worker端的go实现,它很好地弥补了Locust使用Python实现而导致性能不佳的缺陷。 go-httpwrapper对Bo

见欢 23 May 5, 2022
HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S) / HTTP2 / WebSocket / RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型。简单易用,功能强大,具有丰富的插件化机制和高度的可扩展能力。

HttpRunner HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型。简单易用,功能强大,具有丰富的插件化机制和高度的可扩展能力。 HttpRunner 用户调研问卷 持续

HttpRunner 3.5k Nov 30, 2022