One-stop solution for HTTP(S) testing.

Overview

HttpRunner

downloads unittest integration-test codecov pypi version pyversions TesterHome

HttpRunner is a simple & elegant, yet powerful HTTP(S) testing framework. Enjoy! 🚀

Design Philosophy

Key Features

  • Inherit all powerful features of requests, just have fun to handle HTTP(S) in human way.
  • Define testcase in YAML or JSON format, run with pytest in concise and elegant manner.
  • Record and generate testcases with HAR support.
  • Supports variables/extract/validate/hooks mechanisms to create extremely complex test scenarios.
  • With debugtalk.py plugin, any function can be used in any part of your testcase.
  • With jmespath, extract and validate json response has never been easier.
  • With pytest, hundreds of plugins are readily available.
  • With allure, test report can be pretty nice and powerful.
  • With reuse of locust, you can run performance test without extra work.
  • CLI command supported, perfect combination with CI/CD.

Sponsors

Thank you to all our sponsors! 🍰 (become a sponsor)

金牌赞助商(Gold Sponsor)

霍格沃兹测试学院

霍格沃兹测试学院 是业界领先的测试开发技术高端教育品牌,隶属于测吧(北京)科技有限公司。学院课程均由 BAT 一线测试大咖执教,提供实战驱动的接口自动化测试、移动自动化测试、性能测试、持续集成与 DevOps 等技术培训,以及测试开发优秀人才内推服务。点击学习!

霍格沃兹测试学院是 HttpRunner 的首家金牌赞助商。

开源服务赞助商(Open Source Sponsor)

Sentry

HttpRunner is in Sentry Sponsored plan.

Subscribe

关注 HttpRunner 的微信公众号,第一时间获得最新资讯。

Comments
  • 参数化所有用例都取第一个值

    参数化所有用例都取第一个值

    问题描述

    请对遇到的 bug 进行简要描述。

    版本信息

    请提供如下版本信息:

    • 操作系统类型: [e.g. macos]
    • Python 版本 [e.g. 3.6]
    • HttpRunner 版本 [e.g. 3.1.6]
    • 设备 ID: [e.g. 190070690681122]

    项目文件内容(非必须)

    config:
      name: login
      base_url: ${ENV(HOST)}
      variables:
        username: '${ENV(ADMIN_USER)}'
        password: '${ENV(PASSWORD)}'
      export:
        - token
    
    teststeps:
      - name: login
        request:
          method: POST
          url: /login
          json: { 'username': '${username}', 'password': '${password}'}
        extract:
          token: "body.data.token"
        validate:
          - eq: [ "body.code", '300' ]
    
    config:
      name: login
      parameters:
        username: [ "zhangsan", "lisi", "xiaoming" ]
        password: [ "zhangsan123", "lisi123", "xiaoming123" ]
    
    teststeps:
      - name: "login"
        testcase: testcases/admin/login/login.yaml
        variables:
          username: '${username}'
          password: '${password}'
    
    
    
    

    运行命令 && 堆栈信息

    请提供在命令行中运行测试时所在的目录和命令,以及报错时的详细堆栈内容。

    hrun testsuites/admin/login/login.yaml --html=./reports/report.html
    

    日志文件

    logs.zip

    bug 
    opened by binbinu 19
  • [bug] request json body is a list

    [bug] request json body is a list

    问题描述

    我们的新增接口只会返回status code,response中不会返回任何。用postman直接调用是返回的200. 但是使用httprunner的话就报错

    版本信息

    请提供如下版本信息:

    • 操作系统类型: [ Windows]
    • Python 版本 [3.6]
    • HttpRunner 版本 [2.1.2]

    报错信息


    Traceback (most recent call last): ValueError: invalid literal for int() with base 16: b''

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): http.client.IncompleteRead: IncompleteRead(0 bytes read)

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): urllib3.exceptions.ProtocolError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))

    image

    bug 
    opened by moyanzhiyu 14
  • 请求中verify参数设置为False无效

    请求中verify参数设置为False无效

    问题描述

    在config配置中设置verify参数为false,实际执行时仍会验证证书。

    版本信息

    请提供如下版本信息:

    • 操作系统类型: [e.g. Windows]
    • Python 版本 [e.g. 3.7]
    • HttpRunner 版本 [e.g. 2.0.0]

    堆栈信息

    Traceback (most recent call last): File "C:\Program Files\Python37\lib\site-packages\httprunner\api.py", line 54, in test test_runner.run_test(test_dict) File "C:\Program Files\Python37\lib\site-packages\httprunner\runner.py", line 347, in run_test self._run_test(test_dict) File "C:\Program Files\Python37\lib\site-packages\httprunner\runner.py", line 234, in _run_test **parsed_test_request File "C:\Program Files\Python37\lib\site-packages\httprunner\client.py", line 205, in request for resp_obj in response_list File "C:\Program Files\Python37\lib\site-packages\httprunner\client.py", line 205, in for resp_obj in response_list File "C:\Program Files\Python37\lib\site-packages\httprunner\client.py", line 102, in get_req_resp_record req_resp_dict["response"]["ok"] = resp_obj.ok File "C:\Program Files\Python37\lib\site-packages\requests\models.py", line 701, in ok self.raise_for_status() File "C:\Program Files\Python37\lib\site-packages\httprunner\client.py", line 20, in raise_for_status raise self.error File "C:\Program Files\Python37\lib\site-packages\httprunner\client.py", line 233, in _send_request_safe_mode return requests.Session.request(self, method, url, **kwargs) File "C:\Program Files\Python37\lib\site-packages\requests\sessions.py", line 512, in request resp = self.send(prep, **send_kwargs) File "C:\Program Files\Python37\lib\site-packages\requests\sessions.py", line 622, in send r = adapter.send(request, **kwargs) File "C:\Program Files\Python37\lib\site-packages\requests\adapters.py", line 511, in send raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnectionPool(host='www.homelabs.cn', port=443): Max retries exceeded with url: /api/v1/login (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1045)')))


    Ran 1 test in 0.445s

    FAILED (errors=1) variable 'role' can not be found in variables mapping, failed to output!

    项目文件结构

    .env │ debugtalk.py │ main.py │ ├─.idea │ │ misc.xml │ │ modules.xml │ │ test.iml │ │ workspace.xml │ │ │ └─inspectionProfiles ├─api │ ├─json │ │ │ │ │ ├─api_v1_login │ │ │ post.json │ │ │ │ │ ├─api_v1_logout │ │ │ get.json │ ├─reports │ 1546595125.html │ 1546595143.html │ ├─testcases │ ├─login │ │ 密码登录.yml │ │ 账号不存在时登录.yml │ │ 验证码登录.yml │ │ │ └─reports │ 报告上传.yml │ ├─testsuites ├─tools │ │ database.py

    项目文件内容(非必须)

    -   config:
            name: 正常登陆接口测试1
            base_url: ${get_base_url()}
            verify: false
            request:
              headers:
                Accept: application/json
                User-Agent: iOS/10.3
            variables:
              -  act: ${random_account()}
              -  pwd: "${md5(123456)}"
              -  role: 1
            "output": [
              role,
            ]
    -   test:
          parameters:
          - identityType: [passwd]
          variables:
          - role: 2
          setup_hooks:
          - ${init_act($act, $pwd, $role)}
          name: 正常登陆接口测试
          api: api/yml/api_v1_login/post.yml
          validate:
          - eq: ["status_code", 200]
          - eq: ["content.respStatus.code", 200]
    

    提示:请注意在去除项目敏感信息(IP、账号密码、密钥等)后再进行上传。

    invalid 
    opened by guolong123 14
  • 带中文参数请求会转为unicode,并且2.1.2无法通过data关键字解决

    带中文参数请求会转为unicode,并且2.1.2无法通过data关键字解决

    问题描述

    遇到了 https://github.com/HttpRunner/HttpRunner/issues/395#issue-363556841 的问题,尝试使用data关键字解决时报错,提示编码问题

    版本信息

    请提供如下版本信息:

    • 操作系统类型: [Windows]
    • Python 版本 [3.7]
    • HttpRunner 版本 [2.1.2]

    项目文件内容(非必须)

    name: 登录
    base_url: ${ENV(base_url)}
    variables:
        username: 用户名
        password: 密码
    
    request:
        method: POST
        url: /v1/systemUser/login
        headers:
            Content-Type: text/plain
        data: '{"username": "$username","password": "$password"}'
        # json:
        #     username: $username
        #     password: $password
    
    validate:
        - eq:
              - status_code
              - 200
    

    运行命令 && 堆栈信息

    Traceback (most recent call last): UnicodeEncodeError: 'latin-1' codec can't encode characters in position 14-16: Body ('用户名') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8.

    duplicate 
    opened by lichengxun 13
  • testcases下定义了用例参数,运行提示找不到参数

    testcases下定义了用例参数,运行提示找不到参数

    testcases文件下,存在以下用例smoketest.yml:

    - config:
        name: smoketest
        request: $default_request  
    - test:
        name: 错误账密登录测试
        parameters:
            - userid-password:
                - ["xxx", "xxx"]
        suite: loginSuite($userid, $password)
    

    suite文件下,存在以下:

    - config:
        name: "suittest"
        def: loginSuite($userid, $password)
        request: $default_request
    - test:
        name: 获取token
        api: login($userid, $password)
    

    api文件下,存在以下:

    - api:
        def: login($userid, $password) 
        request:
          url: 'xxx'
          headers: {}
          method: POST
          data:
            simpleAccountService.login: |-
              {
                "areaCode" : "86",
                "password" : "$password",
                "userid" : $userid,
                }
              }
    

    为啥hrun tests/testcases/smoketest.yml时候提示httprunner.exception.VariableNotFound: password not found in recursive upward path!,求指教

    bug 
    opened by wuyajun2016 13
  • parameters的csv中包含中文时出现UnicodeDecodeError

    parameters的csv中包含中文时出现UnicodeDecodeError

    使用parameters指定参数列表,当csv中含有中文时,报错如下:

    Traceback (most recent call last):
      File "C:\Python36\Scripts\hrun-script.py", line 11, in <module>
        load_entry_point('HttpRunner==1.4.4', 'console_scripts', 'hrun')()
      File "c:\python36\lib\site-packages\httprunner\cli.py", line 82, in main_hrun
        runner = HttpRunner(failfast=args.failfast, dot_env_path=args.dot_env_path).run(args.testset_paths)
      File "c:\python36\lib\site-packages\httprunner\task.py", line 242, in run
        task_suite = init_task_suite(path_or_testsets, mapping)
      File "c:\python36\lib\site-packages\httprunner\task.py", line 206, in init_task_suite
        return TaskSuite(testsets, mapping, http_client_session)
      File "c:\python36\lib\site-packages\httprunner\task.py", line 187, in __init__
        suite = TestSuite(testset, mapping, http_client_session)
      File "c:\python36\lib\site-packages\httprunner\task.py", line 76, in __init__
        config_dict_parameters
      File "c:\python36\lib\site-packages\httprunner\task.py", line 116, in _get_parametered_variables
        self.testset_file_path
      File "c:\python36\lib\site-packages\httprunner\testcase.py", line 712, in parse_parameters
        parsed_parameter_content = testcase_parser.eval_content_with_bindings(parameter_content)
      File "c:\python36\lib\site-packages\httprunner\testcase.py", line 915, in eval_content_with_bindings
        content = self._eval_content_functions(content)
      File "c:\python36\lib\site-packages\httprunner\testcase.py", line 813, in _eval_content_functions
        eval_value = self.parameterize(*args, **kwargs)
      File "c:\python36\lib\site-packages\httprunner\testcase.py", line 794, in parameterize
        csv_content_list = FileUtils.load_file(parameter_file_path)
      File "c:\python36\lib\site-packages\httprunner\utils.py", line 128, in load_file
        return FileUtils._load_csv_file(file_path)
      File "c:\python36\lib\site-packages\httprunner\utils.py", line 112, in _load_csv_file
        for row in reader:
      File "c:\python36\lib\csv.py", line 111, in __next__
        self.fieldnames
      File "c:\python36\lib\csv.py", line 98, in fieldnames
        self._fieldnames = next(self.reader)
      File "c:\python36\lib\codecs.py", line 321, in decode
        (result, consumed) = self._buffer_decode(data, self.errors, final)
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 76: invalid continuation byte
    'utf-8' codec can't decode byte 0xd6 in position 76: invalid continuation byte
    
    bug 
    opened by lukcyjane 12
  • 关于sign值生成问题

    关于sign值生成问题

    请教一个关于sign值生成问题

    问问题之前要先解释下我司的sign值生成方式,所有的参数以key1=value1&key2=value2的格式按照首字母顺序排序后加上一个secret进行md5加密后生成的。

    如果按照中文手册中的示例一样在用例中用函数去调用加密函数的时候再去传值,当参数过多的时候会很不方便。

    开始我想是在debugtalk.py中写一个函数然后通过用例名称去读取文件,但是后来发现参数化的参数不行。

    后来我自己YY能不能像截图中这样子弄,但行不通。 image

    想请教下怎么才能很方便的去读取请求中param部分去生成sign值,不用每个用例都去填写一遍键值对~~

    想了好久没有想出来~~~~ 希望我没有问了一个很蠢的问题~~~~(〃'▽'〃)

    docs 
    opened by youshuchang 11
  • 在大量并发下DNS解析会出问题。

    在大量并发下DNS解析会出问题。

    Traceback (most recent call last): ConnectionError: HTTPConnectionPool(host='ip', port=端口号): Max retries exceeded with url: url路径 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x106831310>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known',)) 网上解决方法:不使用python的DNS解析标准库,使用gevent内置的取代标准库的DNS解析模块.

    pending 
    opened by junjunsay 9
  • Windows环境下无法实践开发者模式(httpbin的meinheld依赖无法安装)

    Windows环境下无法实践开发者模式(httpbin的meinheld依赖无法安装)

    安装环境:win10+python3.6 安装时出现下面的提示,安装版本与我的环境不匹配

    [email protected] MINGW64 ~/HttpRunner (master) $ pipenv install --dev Creating a virtualenv for this project... Pipfile: C:\Users\asus\HttpRunner\Pipfile Using d:\python\python36\python.exe (3.6.5) to create virtualenv... Already using interpreter d:\python\python36\python.exe Using base prefix 'd:\python\python36' New python executable in C:\Users\asus.virtualenvs\HttpRunner-gHQkxH18\Scripts\python.e xe Installing setuptools, pip, wheel...done. Setting project for HttpRunner-gHQkxH18 to C:\Users\asus\HttpRunner

    Virtualenv location: C:\Users\asus.virtualenvs\HttpRunner-gHQkxH18 Installing dependencies from Pipfile.lock (64c12a)... Ignoring enum34: markers 'python_version < "3"' don't match your environment Ignoring ipaddress: markers 'python_version < "3"' don't match your environment An error occurred while installing meinheld==0.6.1! Will try again. Ignoring ruamel.ordereddict: markers 'platform_python_implementation == "cpython" and py thon_version <= "2.7"' don't match your environment Installing initially failed dependencies... Collecting meinheld==0.6.1 Using cached https://files.pythonhosted.org/packages/6c/b7/0a6f03ba8e12862c71a7acc0c05 1f902f952f13be2a48878ebd2bc198562/meinheld-0.6.1.tar.gz Complete output from command python setup.py egg_info: Are you really running a posix compliant OS ? Be posix compliant is mandatory

    bug duplicate 
    opened by berrycam 9
  • UnicodeEncodeError: 'ascii' codec can't encode characters in position 11-13: ordinal not in range(128)

    UnicodeEncodeError: 'ascii' codec can't encode characters in position 11-13: ordinal not in range(128)

    运行测试用例后报以下错误,应该是字符编码处理有问题,因为返回结果里包含中文

    ERROR [0.133801s]: /user/init
    ----------------------------------------------------------------------
    Traceback (most recent call last):
    UnicodeEncodeError: 'ascii' codec can't encode characters in position 11-13: ordinal not in range(128)
    
    ----------------------------------------------------------------------
    Ran 2 tests in 0.375s
    
    FAILED
     (Errors=1)
    
    Generating HTML reports...
    Template is not specified, load default template instead.
    
    bug 
    opened by dengly 9
  • 若对YAML格式不熟悉,推荐使用JSON格式编写维护测试用例

    若对YAML格式不熟悉,推荐使用JSON格式编写维护测试用例

    你好, 我使用python脚本调用ate部分,执行后报keyerror: 服务端返回值应该是如下:

    {
      "statusString": "MUSS Request Successful",
      "id": "3ffd3ab1-6781-4fdd-808a-03fa48e7d5ec||f00c8366-fb7e-401f-9a33-8c7280f12044:f00c8366-fb7e-401f-9a33-8c7280f12044",
      "extension": [
        {
          "streamURL": "rtsp://159.99.251.223:554/5e551f88-d852-4106-9f57-d3377227d545_1_1.sdp||rtmps://159.99.251.223:790/live/5e551f88-d852-4106-9f57-d3377227d545_1_1_28b0efd8-4a6c-40f5-9dcf-f4c67146adaf",
          "name": "isomStreamResponseStatus"
        }
      ]
    }
    

    脚本报错:

    Traceback (most recent call last):
      File "C:\Users\e567802\AppData\Local\Programs\Python\Python36\lib\site-packages\ate\utils.py", line 125, in query_json
        json_content = json_content[key]
    KeyError: 'extension'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "C:\Projects\PythonProject\APITest.py", line 8, in <module>
        APITest.run(testcase_path)
      File "C:\Users\e567802\AppData\Local\Programs\Python\Python36\lib\site-packages\ate\runner.py", line 198, in run
        result = self._run_testset(testset, mapping)
      File "C:\Users\e567802\AppData\Local\Programs\Python\Python36\lib\site-packages\ate\runner.py", line 171, in _run_testset
        assert self._run_test(testcase)
      File "C:\Users\e567802\AppData\Local\Programs\Python\Python36\lib\site-packages\ate\runner.py", line 118, in _run_test
        extracted_variables_mapping = resp_obj.extract_response(extract_binds)
      File "C:\Users\e567802\AppData\Local\Programs\Python\Python36\lib\site-packages\ate\response.py", line 77, in extract_response
        extracted_variables_mapping[key] = self.extract_field(field)
      File "C:\Users\e567802\AppData\Local\Programs\Python\Python36\lib\site-packages\ate\response.py", line 51, in extract_field
        return utils.query_json(json_content, sub_query)
      File "C:\Users\e567802\AppData\Local\Programs\Python\Python36\lib\site-packages\ate\utils.py", line 130, in query_json
        raise exception.ParseResponseError("failed to query json when extracting response!")
    ate.exception.ParseResponseError: failed to query json when extracting response!
    
    

    我脚本中的调用:

    from ate.runner import Runner
    from ate import utils
    
    if __name__ == '__main__' :
        #utils.SECRET_KEY='BaseTest'
        testcase_path='Test_Cases/Stream/'
        APITest=Runner()
        APITest.run(testcase_path)
    

    请问是什么问题呢?

    另外,询问下,我想改默认的debugtalk.py为BaseTest.py应该怎么设置?

    谢谢。

    invalid 
    opened by Kewings 9
  • json文件参数传递的问题

    json文件参数传递的问题

    问题描述

    api请求类似这样: { "request": { "method": "POST", "url": "/test", "json": { "appIist": "${app_list}", "desc": "test", "name": "test" } } }

    假设app_Iist是从其他接口取的,值是列表(list[dict])。 但是由于json文件格式的限制, 我们传给appIist时, 必须带上双引号, 这样appIist的值就是一个字符串。

    所以, 我们要怎么传{}和[]的值呢?

    pending 
    opened by hazer491 0
  • httprunner中,运用upload文件上传遇到一个问题,请教大家

    httprunner中,运用upload文件上传遇到一个问题,请教大家

    请求格式: ------WebKitFormBoundaryG6tvGAH7HyHYamTE Content-Disposition: form-data; name="input"

    {"appId":"bds","bizType":"Default","folders":["22","12"],"tags":[]} ------WebKitFormBoundaryG6tvGAH7HyHYamTE Content-Disposition: form-data; name="files"; filename="14.jpg" Content-Type: image/jpeg

    脚本代码

      upload:
        files: data/api.jpg
        input:
          ppId: 'bds'
          bizType: 'Default'
          folders:
            - '22'
            - '12'
          tags: [ ]
    

    结果还是上传失败,报错500

    pending 
    opened by snomy1 0
  • 目前支持curl指令转换测试用例吗?

    目前支持curl指令转换测试用例吗?

    版本: hrp version v4.3.0 目前支持curl指令到测试用例的转换吗?如果支持的话能否给个例子?

    显示 Use "hrp convert [command] --help" for more information about a command. Screen Shot 2022-12-20 at 5 33 04 pm

    但使用命令hrp convert curl --help时会报错 Screen Shot 2022-12-20 at 5 30 33 pm

    pending 
    opened by Renyqin 0
  • httprunner4 不支持API中定义base_url

    httprunner4 不支持API中定义base_url

    问题描述

    能不能在models文件的 TRequest/TStep 对象中加入 base_url 便于测试用例中存在多个不同的域名时,分别在不同的api中定义这个域名。目前httprunner4如果在测试用例中使用统一的base_url会覆盖api中定义的base_url. 之前在httprunner2.5.7中是支持这一特性

    请对 bug 进行简要描述; 尽量附带运行的命令和报错时的堆栈信息

    版本信息

    请提供如下版本信息:

    • 操作系统类型: [e.g. macOS, Linux, Windows]
    • Python 版本: [e.g. 3.9]
    • Go 版本: [e.g. 1.18]
    • HttpRunner 版本 [e.g. 3.1.8]

    项目文件内容(非必须)

    如果可能,提供项目测试用例文件原始内容可加快 bug 定位和修复速度。

    提示:请注意在去除项目敏感信息(IP、账号密码、密钥等)后再进行上传。

    pending 
    opened by jiqialin 0
  • build(deps): bump certifi from 2021.10.8 to 2022.12.7

    build(deps): bump certifi from 2021.10.8 to 2022.12.7

    Bumps certifi from 2021.10.8 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 0
Releases(v4.3.1)
Subprocesses for Humans 2.0.

Delegator.py — Subprocesses for Humans 2.0 Delegator.py is a simple library for dealing with subprocesses, inspired by both envoy and pexpect (in fact

Amit Tripathi 1.6k Jan 04, 2023
UX Analytics & A/B Testing

UX Analytics & A/B Testing

Marvin EDORH 1 Sep 07, 2021
API mocking with Python.

apyr apyr (all lowercase) is a simple & easy to use mock API server. It's great for front-end development when your API is not ready, or when you are

Umut Seven 55 Nov 25, 2022
Command line driven CI frontend and development task automation tool.

tox automation project Command line driven CI frontend and development task automation tool At its core tox provides a convenient way to run arbitrary

tox development team 3.1k Jan 04, 2023
Data App Performance Tests

Data App Performance Tests My hypothesis is that The different architectures of

Marc Skov Madsen 6 Dec 14, 2022
A simple asynchronous TCP/IP Connect Port Scanner in Python 3

Python 3 Asynchronous TCP/IP Connect Port Scanner A simple pure-Python TCP Connect port scanner. This application leverages the use of Python's Standa

70 Jan 03, 2023
This is a web test framework based on python+selenium

Basic thoughts for this framework There should have a BasePage.py to be the parent page and all the page object should inherit this class BasePage.py

Cactus 2 Mar 09, 2022
Ward is a modern test framework for Python with a focus on productivity and readability.

Ward is a modern test framework for Python with a focus on productivity and readability.

Darren Burns 1k Dec 31, 2022
Faker is a Python package that generates fake data for you.

Faker is a Python package that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in yo

Daniele Faraglia 15.2k Jan 01, 2023
Show, Edit and Tell: A Framework for Editing Image Captions, CVPR 2020

Show, Edit and Tell: A Framework for Editing Image Captions | arXiv This contains the source code for Show, Edit and Tell: A Framework for Editing Ima

Fawaz Sammani 76 Nov 25, 2022
Tattoo - System for automating the Gentoo arch testing process

Naming origin Well, naming things is very hard. Thankfully we have an excellent

Arthur Zamarin 4 Nov 07, 2022
create custom test databases that are populated with fake data

About Generate fake but valid data filled databases for test purposes using most popular patterns(AFAIK). Current support is sqlite, mysql, postgresql

Emir Ozer 2.2k Jan 04, 2023
자동 건강상태 자가진단 메크로 서버전용

Auto-Self-Diagnosis-for-server 자동 자가진단 메크로 서버전용 이 프로그램은 SaidBySolo님의 auto-self-diagnosis를 참고하여 제작하였습니다. 개인 사용 목적으로 제작하였기 때문에 추후 업데이트는 진행하지 않습니다. 의존성 G

JJooni 3 Dec 04, 2021
An interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers.

mitmproxy mitmproxy is an interactive, SSL/TLS-capable intercepting proxy with a console interface for HTTP/1, HTTP/2, and WebSockets. mitmdump is the

mitmproxy 29.7k Jan 02, 2023
The successor to nose, based on unittest2

Welcome to nose2 nose2 is the successor to nose. It's unittest with plugins. nose2 is a new project and does not support all of the features of nose.

736 Dec 16, 2022
The Good Old Days. | Testing Out A New Module-

The-Good-Old-Days. The Good Old Days. | Testing Out A New Module- Installation Asciimatics supports Python versions 2 & 3. For the precise list of tes

Syntax. 2 Jun 08, 2022
hyppo is an open-source software package for multivariate hypothesis testing.

hyppo (HYPothesis Testing in PythOn, pronounced "Hippo") is an open-source software package for multivariate hypothesis testing.

neurodata 137 Dec 18, 2022
Compiles python selenium script to be a Window's executable

Problem Statement Setting up a Python project can be frustrating for non-developers. From downloading the right version of python, setting up virtual

Jerry Ng 8 Jan 09, 2023
自动化爬取并自动测试所有swagger-ui.html显示的接口

swagger-hack 在测试中偶尔会碰到swagger泄露 常见的泄露如图: 有的泄露接口特别多,每一个都手动去试根本试不过来 于是用python写了个脚本自动爬取所有接口,配置好传参发包访问 原理是首先抓取http://url/swagger-resources 获取到有哪些标准及对应的文档地

jayus 534 Dec 29, 2022
Python Rest Testing

pyresttest Table of Contents What Is It? Status Installation Sample Test Examples Installation How Do I Use It? Running A Simple Test Using JSON Valid

Sam Van Oort 1.1k Dec 28, 2022