美文网首页
接口自动化测试(httpruner)

接口自动化测试(httpruner)

作者: 提摩太_e9ec | 来源:发表于2019-12-26 17:12 被阅读0次

    遇到的问题


    问题一:

    1. testcase目录下创建case.yml,case.yml中引用了api.yml,case.yml内容如下:
    teststeps: 
    - 
        name: 获取会议纪要列表
        api: api/meetingassistant/api.yml
        extract: 
            - id: content.data
        validate: 
            - eq: ["status_code", 200]
    
    1. testcase目录下执行hrun case.yml,报错 httprunner.exceptions.ApiNotFound: api.yml not found!

    解决方案:在这个项目的根目录(testcase的上一级目录)下执行hrun case.yml

    问题二:

    自定义函数传入字符串,自定义函数不被执行,代码如下:

    name: 删除最后创建的记录
    base_url: ${ENV(base_url)}
    variables: 
        id: ${get_value("id",$data)}    # 自定义函数get_value中传入字符串“id”,此函数不被执行
    

    解决方案:在variables中定义变量,将要传的字符串赋值给这个变量,代码如下:

    name: 删除最后创建的记录
    base_url: ${ENV(base_url)}
    variables: 
        key: id    # 此处定义变量key
        id: ${get_value($key,$data)}    # 传入变量key
    

    问题三:

    运行报错:

    File "d:\python\python36\lib\site-packages\httprunner\loader.py", line 201, in load_dot_env_file
        raise exceptions.FileFormatError(".env format error")
    httprunner.exceptions.FileFormatError: .env format error
    

    解决方案

    1. 修改loader.py 201行代码如下
    2. 再次执行脚本,加上参数--log-level debug,查看日志中variable,value的值
    raise exceptions.FileFormatError(".env format error", variable, value)
    

    经排查,我的脚本报错原因是:最后一行是"\n",删除最后一行的"\n"即可通过

    上传文件


    script.py

    name: 上传图片
    base_url: ${ENV(base_url)}
    variables:
        fileName: 上传图片.png
        getFile: ${getFile($fileName)}
    request:
        url: /file/FastDFSUploadController/upload
        method: POST
        files:
            file: [$fileName,$getFile]
    validate:
        - eq: ["status_code", 200]
    

    debugtalk.py

    def getFile(filePath):
        return open(filePath,"rb")
    

    提取返回结果


    返回结果是json

    request:
    ...
    extract:
        data: content.data.errcode
    ...
    

    返回结果是list

    request:
    ...
    extract:
        data: content.0.errcode
    ...
    

    用正则表达式提取

    request:
    ...
    extract:
        data: abc(.*?)$
    ...
    

    调试


    httprunner提供了不同级别的日志信息(调试脚本用得着),操作如下:

    执行脚本时,后面加上--log-level,比如 hrun case.yml --log-level debugdebug是日志级别,默认是 info。注:此日志只在窗口展示,不会存档。

    failfast

    执行用例,遇到失败的用例时,不再执行后续用例

    hrun filepath/testcase.yml --failfast
    

    命名规则


    接口命名:

    规则:mobile+接口url后两个字段+请求方式(get/post),驼峰命名
    实例:mobileCommentAddPost

    相关文章

      网友评论

          本文标题:接口自动化测试(httpruner)

          本文链接:https://www.haomeiwen.com/subject/bzsbwctx.html