HttpRunner自动化之响应中文乱码处理

响应中文乱码:

  当调用接口,响应正文返回的中文是乱码时,一般是响应正文的编码格式不为 utf-8 导致,此时需要根据实际的编码格式处理

示例:

图1中 extract 提取title标题,output 输出 title 变量值,如下图2可见,输出的变量值成了乱码,图3的报告中可以看到响应的编码为 ISO-8859-1

解决方式如下:

**方式一,**添加headers头部信息,如下图

4个关键字必须:

User-Agent: *****

Accept: *****

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

上述头部信息关键字,可通过F12键获取

yaml示例:

添加headers头部信息,如下图

添加头部执行后,输出的变量值为utf-8 中文编码;如下图

**方式二,**通过 debugtalk.py 辅助函数编写代码然后yaml文件中调用;

python中内置函数 encode() 和 decode() ,encode()是编码、decode()是解码

debugtalk.py文件的代码如下:

encode编码 decode解码

iso8859-1 编码,解码成 utf-8

def iso8859_to_utf8(str):

return str.encode("iso8859-1").decode("utf-8")

utf-8 编码,解码成 iso8859-1

def utf8_to_iso8859(str):

return str.encode("utf-8").decode("iso8859-1")

unicode_escape 编码,解码成 utf-8

def unicode_escape_to_utf8(str):

return str.encode("unicode_escape").decode("utf-8")

在yaml文件中,断言引用函数需要加引号 " ",如下图

测试报告展示成功,断言成功,如下图:

上述是通过utf-8进行断言比对,还可以通过 iso8859-1 进行断言比对;如下图:

variables: 变量;

把预期结果先做个变量然后转成和实际结果一样的编码,最后再通过断言进行比对,如下图:

测试报告展示成功,断言成功,如下图:

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
傻啦嘿哟7 小时前
某短视频平台视频爬虫实战:抓取推荐流视频信息,绕过反爬的3种技巧
开发语言·爬虫·python
独隅7 小时前
Cursor+GitOps 自动化运维实战:智能编写 Ansible 与 Terraform
运维·自动化·ansible
迷迭香yy7 小时前
集合竞价数据挖掘实战:用Python构建开盘信号识别系统
人工智能·python·数据挖掘
草木川_CANoe从入门到精通9 小时前
功能测试day1之业务流程(下单+发货+售后)
功能测试
YFJ_mily9 小时前
【IEEE征稿】第二届智能制造、机器人与自动化国际学术会议(IMRA 2026)| 马鞍山12月举办,EI/Scopus稳定检索,3-5工作日录用
机器人·自动化·智能制造·工业自动化·ieee会议·rdlink研发家·安徽马鞍山会议
李昊哲小课10 小时前
fastapi sse websocket 奶茶店实时订单看板
人工智能·python·websocket·网络协议·fastapi·sse
星蓝_starblue10 小时前
零服务器、零数据库!开源growth-board,利用GitHub自动管理刷题/学习/求职全流程
服务器·数据库·程序人生·系统架构·node.js·github·改行学it
nbzy88810 小时前
电器铝锌压铸配件资料检索报错排查:倒排索引与结构化过滤的组合实现
自动化·内容生成·电器铝锌压铸配件
回眸&啤酒鸭12 小时前
【回眸】搞钱灵感——自动化敏捷开发项目管理系统落地设计
运维·自动化·敏捷流程
2401_8445829512 小时前
工具包:软件架构设计的实用技巧与经验分享
python