真正的稳定,是自己不断成长,不断寻找新的空间。与其要稳定,不如开始拥抱这个变化的时代,让自己准备好。
【写在前面】:
我们知道接口测试时重点是接口请求参数和组合形式,在之前的文章中我们提到接口请求参数的分析和自动生成,之前本人是自己写方法来处理这些数据,后来发现python本身就自带参数的拆分和组合,真是“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”。
【材料】:
参考材料 https://cuiqingcai.com/5508.html
【方法】:
1、parse_qs() #将get请求url后的参数转换为字典
举例如下:
from urllib.parse import parse_qs
query = 'name=germey&age=22'
print(parse_qs(query))
运行结果如下:
{'name': ['germey'], 'age': ['22']}
2、parse_qsl() #将get请求url后的参数将参数转化为元组组成的列表
举例如下:
from urllib.parse import parse_qsl
query = 'name=germey&age=22'
print(parse_qsl(query))
运行结果如下:
[('name', 'germey'), ('age', '22')]
3、urlencode() #构造GET请求参数
举例如下:
from urllib.parse import urlencode
params = {
'name': 'germey',
'age': 22
}
base_url = 'http://www.baidu.com?'
url = base_url + urlencode(params)
print(url)
运行结果如下:
http://www.baidu.com?name=germey&age=22
4、urlsplit() #拆分url
举例如下:
from urllib.parse import urlsplit
result = urlsplit('http://www.baidu.com/index.html;user?id=5&type=test')
print(result)
运行结果如下:
SplitResult(scheme='http', netloc='www.baidu.com', path='/index.html;user', query='id=5&type=test', fragment='')
返回结果是SplitResult,它其实也是一个元组类型,既可以用属性获取值,也可以用索引来获取。示例如下:
print(result.query, result[0])
运行结果如下:
id=5&type=test http
5、quote() #将内容转化为URL编码的格式。URL中带有中文参数时,有时可能会导致乱码的问题,此时用这个方法可以将中文字符转化为URL编码.
举例如下:
from urllib.parse import quote
keyword = '壁纸'
url = 'https://www.baidu.com/s?wd=' + quote(keyword)
print(url)
运行结果如下:
https://www.baidu.com/s?wd=%E5%A3%81%E7%BA%B8
6、unquote() #进行URL解码
举例如下:
from urllib.parse import unquote
url = 'https://www.baidu.com/s?wd=%E5%A3%81%E7%BA%B8'
print(unquote(url))
运行结果如下:
https://www.baidu.com/s?wd=壁纸