httprunner3.x--xml报文支持

最近在写接口测试时,需要报文内容为xml格式的,在网上没有搜索到相关的博客内容。

经过自己的摸索终于能够使用httprunner实现了,下面提供了两种实现方式供大家选择(主要维护yml格式)。

方案1:将报文写在用例中

首先通过postman进行接口测试,并使用抓包工具(fiddler、charle)进行抓包。
在这里插入图片描述

抓包之后导出为.har文件格式。

然后通过命令,转化为yaml格式


```bash
命令:har2case sssss.har  -2y

(venv) D:\work\wy_only\CtIntfDemo>har2case ./har/sssss.har -2y
2020-11-05 10:02:14.441 | INFO     | httprunner.ext.har2case.core:gen_testcase:356 - Start to generate testcase from D:\work\wy_only\CtIntfDemo\.\har\sssss.har
2020-11-05 10:02:14.448 | INFO     | httprunner.ext.har2case.core:_make_testcase:347 - Extract info from HAR file and prepare for testcase.
2020-11-05 10:02:14.520 | INFO     | httprunner.ext.har2case.utils:dump_yaml:108 - dump testcase to YAML format.
2020-11-05 10:02:14.545 | INFO     | httprunner.ext.har2case.utils:dump_yaml:115 - Generate YAML testcase successfully: D:\work\wy_only\CtIntfDemo\.\har\sssss.yml
2020-11-05 10:02:14.551 | INFO     | httprunner.ext.har2case.core:gen_testcase:377 - generated testcase: D:\work\wy_only\CtIntfDemo\.\har\sssss.yml
Sentry is attempting to send 0 pending error messages
Waiting up to 2 seconds
Press Ctrl-Break to quit

转化后的yml内容如下:

在这里插入图片描述

需要将带有转义字符进行格式转换:

譬如:\r ->\\r

在这里插入图片描述
如果有报文中有汉字,需要将汉字转化为了acsii码或英文

然后运行yml

命令:hrun ./har/sssss.yml

执行成功。
在这里插入图片描述

方案2,将报文内容写在文档中,用例中只需要调用即可

来啦来啦,来第二波,为了实现参数化,真的杀死了自己好多脑细胞,不过还是被我搞出来了,服了自己!!!!

先来一波代码分享:

config:
    name: "batch user order sync interface"
    base_url: "https://192.152.135.59:8080"
    verify: False

teststeps:
-
    name:  BatchOperatorNotify
    variables:
        file_path: "batchOrderSync.xml"
        m_encoder: ${get_file_std($file_path)}
    request:
        method: POST
        url: /Sync/OperatorNotify/User
        headers:
            Content-Type: application/xml
        data: $m_encoder
    validate:

   - eq: ["status_code", 200]

将报文内容保存在batchOrderSync.xml中,使用get_file_std()方法将文件内容读取被返回给m_encoder变量;

最后将变量m_encoder付给data关键字。

def get_file_std(path):
    with open(path, "r+", encoding='utf8') as f:
        return f.read()

batchOrderSync.xml文件内容:

在这里插入图片描述
最终运行成功,后续会将batchOrderSync.xml作为模块进行参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值