美文网首页程序员
HttpRunner的关联方法

HttpRunner的关联方法

作者: xianling_he | 来源:发表于2020-05-13 18:16 被阅读0次
  • 生成的数据是随机数的时候,如果后面请求需要引用就会报错
  • 比如下面用例中创建Doc的时候会自动生成一个Doc ID,后面对这个Doc编辑操作

抓包工具: Fiddler

找到这个Doc parameter最初出现的请求位置

  • 通过请求找到这个创建document的地方


    image.png
  • 如果你无法确定是哪个请求是创建document,可以用以下两个方法
    1.录制2个步骤相同,使用变量相同的脚本,观察其中不同的变量值
    2.录制完成后进行回放,错误请求的前面一个或者附件的请求就是有需要关联的参数

确定Document是变化以后,需要在yaml文件中添加参数值

  • 使用yaml本着简洁易读,但是格式有严格要求,之前格式问题经常报错
  • 使用Json也是可以完成,但是Json太多{},[] 代码冗余

使用extract 将document id保存,提供后面请求使用

  • 添加extract,并创建参数名documentId,保存document id变量

  • 如何获取document id 是根据响应体里面的document 的样式


    image.png
    extract:
        documentId: content.data.id
  • 完整请求体如下
name: /api/list/create_doc
    request:
        data:
            folderId: '0'
            type: '0'
        headers:
            Content-Type: application/x-www-form-urlencoded; charset=UTF-8
            Sec-Fetch-Dest: empty
            Sec-Fetch-Mode: cors
            Sec-Fetch-Site: same-origin
            User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
                (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
            X-Requested-With: XMLHttpRequest
        method: POST
        url: https://mubu.com/api/list/create_doc
    extract:
        documentId: content.data.id
    validate:
    -   eq:
        - status_code
        - 200
    -   eq:
        - headers.Content-Type
        - application/json;charset=UTF-8
    -   eq:
        - content.code
        - 0
    -   eq:
        - content.msg
        - null

将使用document id的部分进行替换

  • 使用$加上参数名进行替换
  • 参数需要用{}进行包含

代码如下:

-   name: /doc${documentId}
    request:
        headers:
            Sec-Fetch-Dest: document
            Sec-Fetch-Mode: navigate
            Sec-Fetch-Site: same-origin
            Sec-Fetch-User: ?1
            User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
                (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
        method: GET
        url: https://mubu.com/doc${documentId}
    validate:
    -   eq:
        - status_code
        - 200

检查关联的参数是否能够被读取

  • 通过debug方式,打印出Log信息
  • 带上参数--log-level debug 将所有的请求log打印
hrun demo_mubu.yml --log-level debug
  • 在create URL发送请求后,响应中会打印出content.data.id的数据


    image.png

在报告中查看关联数据的正确性

image.png createURL.png ReadDoc.png
  • 以上可以清楚的看到在2个请求中都有document id的值,并且在后面请求中也直接使用,返回状态码200
  • 以上是对动态参数进行关联的一点总结

相关文章

网友评论

    本文标题:HttpRunner的关联方法

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