美文网首页
接口自动化测试(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