M04_HttpRunner中文乱码问题:悟空CRM 中文断言乱码问题处理

M04_HttpRunner中文乱码问题:悟空CRM 中文断言乱码问题处理

 

明白了乱码的成因,接下来就好办啦。

 

HttpRunner 中没有进行字符编码和解码的现成函数,所以我们需要自己手工编写代码进行处理。自己编写的处理函数可以直接定义到一个叫“debugtalk.py”的文件中。

 

注意:

  • 该文件名是固定的“debugtalk.py”,不要自己随便起名。
  • 如果进行规范的项目测试,需要整理一个专门的文件目录结构(可以用 HttpRunner的脚手架功能自动生成),用不同的目录分别保存用例文件、配置文件等。
  • 本次我们以练习为主,直接将“debugtalk.py”和用例的yml文件放到同一目录即可。

 

设计思路:

  • 先将中文字符转换为对应的 UTF-8 编码
  • 再将编码按字节分别解码为 ISO8859-1 字符

 

在用例文件所在相同目录下新建 debugtalk.py 文件(保存时使用 UTF-8 编码),

  • encode 编码函数:将字符按参数中的字符集方式进行编码。

如:“ 悟空..encode("utf8") ”,则返回编码为:E6 82 9F E7 A9 BA

  • decode 解码函数:将字节编码转换为指定字符集所对应的字符

如:“E6.decode("iso8859-1")”,则返回字符为: æ

 

def toISO(t):
	return t.encode("utf8").decode("iso8859-1")

 

在同目录下编写 wuk_001_login_validate.yml 测试用例文件(保存时使用 UTF-8 编码)

  • 先将“悟空”二字存储为一个变量“p”
  • 调用 debugtalk.py 文件文件中的函数 toISO(),返回值存储到变量 x 中
  • 通过正则表达式提取返回页面的标题文字,和 x 变量进行比较断言
- config:
    name: 悟空CRM

- test:
    name: 登录
    request:
      url: http://192.168.1.102/72crm/index.html#/workbench/index
      method: POST
      data:
        username: 13888888888
        password: 123456
    variables:
      p: 悟空
      x: ${toISO($p)}
    validate:
      - eq: [status_code, 200]
      - eq: [<title>(.*)CRM</title>, $x]
 

 

 

执行测试用例,成功

 

查看测试报告

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值