使用python+requests进行接口测试时post请求中参数为中文如何避免编码错误?

在实际工作中,当我们使用python+requests进行接口测试时,模拟post请求时,经常会遇到参数为中文的情况,如果不进行处理,就会导致编码格式不一样而出错。

举例:

当我们使用微信公众开发文档进行标签创建,创建一个中文标签,并进行断言时:

        url_params={
            "access_token":token
        }
        tag_info={"tag":{"name":"定时"}}

        tag_str=json.dumps(tag_info,ensure_ascii=False)
        #将json格式转换为字符串格式
        response=self.session.post(url='https://api.weixin.qq.com/cgi-bin/tags/create',
                                   params=url_params,
                                   data=tag_str.encode('utf-8'))
        actual_result=jsonpath.jsonpath(response.json(),'$.tag.name')[0]
#因为jsonpath返回的数据格式为列表,要取出数字需要在后面加上[0]
        self.assertEqual(actual_result,'定时')

解决编码格式:

1、将json格式的内容使用json.dumps()转换为字符串格式,并设置参数ensure_ascii=False

(因为json.dumps()会自动将中文转为Unicode编码,所以将ensure_ascii设置为False)

2、在请求中设置编码格式为utf-8(data=字符串格式数据.encode('utf-8'))

这样,就可以模拟请求是传参为中文而出现编码错误的情况了

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Pythonrequests库是一个非常强大的用于发送HTTP请求的库。在接口自动化测试使用requests库可以轻松地模拟发送各种类型的HTTP请求,例如GET、POST、PUT、DELETE等。 首先,我们需要在Python环境安装requests库,可以使用pip命令进行安装。安装完成后,在测试脚本引入requests库。 使用requests库发送GET请求非常简单,只需要调用requests库的get()方法,并传入接口的URL即可。可以通过返回的响应对象来获取接口的响应内容、状态码等信息。 如果需要发送POST请求,可以调用requests库的post()方法,并传入接口的URL和请求参数请求参数可以通过字典形式传递,也可以通过json.dumps()方法将字典转换为JSON格式传递。 在接口测试,还可以使用requests库设置请求头信息、传递cookies、设置超间等。可以通过调用requests库的headers、cookies、timeout等属性来实现。 另外,requests库还可以非常方便地处理接口的返回结果。可以使用json()方法将返回的JSON格式响应内容转换为字典形式,方便后续对返回结果进行断言或其他处理。 总之,Pythonrequests库是一个十分强大且易于使用的接口自动化测试工具。它提供了丰富的功能和灵活的接口,能够满足大部分接口自动化测试的需求。 ### 回答2: Python requests库是一个用来发送HTTP请求的库,可以用于接口自动化测试。通过使用requests库,可以方便地发送GET、POST、PUT、DELETE等常见的HTTP请求,同也能处理接收到的响应数据。 对于接口自动化测试来说,requests库具有很多优点。首先,它非常简单易用,不需要过多的配置和繁琐的代码,只需要import requests就可以开始使用。其次,requests库提供了丰富的方法和参数,可以满足多种接口测试的需求,比如发送带参数、Headers、cookies等的请求,也可以指定超间、Session等。另外,requests库还提供了简洁的响应处理方式,可以轻松地获取响应的状态码、头部信息、响应内容等。最后,requests库具有很好的可扩展性,可以与其他库和工具结合使用,比如结合unittest或pytest等测试框架,实现更加灵活和高效的接口测试使用requests进行接口自动化测试的步骤大致如下:首先导入requests库,然后通过requests.get()或requests.post()等方法发送请求,可以根据需要传入参数、Headers、cookies等。接着,可以使用response对象获取响应状态码、头部信息、响应内容等。最后根据接口返回的数据进行断言,验证接口的正确性。 总之,使用Pythonrequests进行接口自动化测试,可以简化测试流程、提高工作效率,是一种非常实用的方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值