Python3-自动化接口测试构建
环境信息
python 3.7.5
依赖库
- requests
- hashlib
- json
- sys
- base64
- Crypto.Cipher
- binascii
- struct
涉及到的Python特性
- 拼接字符串,关键字
f
结合{}
包裹的代码变量就可以将字符串完成拼接;
print(f"{sys._getframe().f_code.co_name} error!")
- 类成员函数灵活定义
def myfunc(self, *klist, **kmap):
print("myfunc call")
上述参数定义解析,self
用于接受对象实例指针;*klist
用于表是可以接受任意多个单值参数,**kmap
用于表示可以接受任意多个key=val表示的参数;结合python的字典特性可以做到非常的灵活;
- json对象和字符串之间的转化
#字符串转对象
jobj = json.loads(rsp.text)
#字典对象转json字符串
str_json = json.dumps(jobj)
#查看对象类型
type(str_json)
type(jobj)
- API接口调用封装
rsp = requests.post(url, json=data, verify=False, headers=custom_headers);
#ps
custom_headers = {
"Content-Type":"application/json",
}
参数使用解析,url
就是接口对应的url,json=data
data为请求参数字典,verify=False
传False说明不需要证书,如果传入的为自签名证书的路径,则会校验服务端的证书,eg:verify=ca.crt
;
- 快速打印一个Class实例所有字段的值
#eg:class
class A():
#...
pass
a = A()
print(a.__dict__)
数据定义表达技巧
用json格式,key作为字段名,value作为类型,如
{
tenantID:string,
sn:string,
lines:[]string,
deviceInfo:[]dict{
devname:string,
ref:int32
}
}