使用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'))

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

参考资源链接:[Python requests库详解:接口测试与实战](https://wenku.youkuaiyun.com/doc/6401ac7ccce7214c316ec04d?utm_source=wenku_answer2doc_content) 在使用Python进行接口测试requests库提供了强大的接口来处理HTTP请求。以下是如何使用requests库进行GET和POST请求,并处理token验证及JSON数据解析的详细步骤。 首先,确保已通过pip安装了requests库:`pip install requests`。 对于GET请求,你可以这样发起: ```python import requests url = '***' response = requests.get(url) assert response.status_code == 200 # 确保请求成功 # 解析JSON响应 try: data = response.json() except ValueError: print('Invalid JSON response') ``` 对于POST请求,通常用于提交表单数据或上传文件。例如,提交JSON数据: ```python import requests import json url = '***' payload = {'username': 'user', 'password': 'pass'} headers = {'Content-Type': 'application/json'} response = requests.post(url, data=json.dumps(payload), headers=headers) assert response.status_code == 200 # 确保请求成功 # 获取响应中的token,通常在登录成功后返回 token = response.json().get('token') # 使用token进行后续请求 headers['Authorization'] = f'Bearer {token}' response = requests.get('***', headers=headers) assert response.status_code == 200 # 确保请求成功 ``` 处理文件上传: ```python import requests url = '***' files = {'file': open('path/to/file', 'rb')} data = {'name': 'filename.txt'} response = requests.post(url, files=files, data=data) assert response.status_code == 200 # 确保请求成功 ``` 在进行接口测试,正确处理token验证和JSON数据解析对于确保测试的有效性至关重要。上述示例展示了如何发送GET和POST请求,以及如何在响应中获取token并用于后续的请求。此外,解析JSON数据应适当处理异常,避免因格式错误导致程序崩溃。为了深入理解和掌握这些技术细节,建议阅读《Python requests库详解:接口测试与实战》一书,其中不仅包含了丰富的实战示例,还涵盖了更深层次的测试策略和最佳实践。 参考资源链接:[Python requests库详解:接口测试与实战](https://wenku.youkuaiyun.com/doc/6401ac7ccce7214c316ec04d?utm_source=wenku_answer2doc_content)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值