2022年 11月 8日

Python3-自动化接口测试构建

Python3-自动化接口测试构建

  • 环境信息
    • 依赖库
    • 涉及到的Python特性
    • 数据定义表达技巧

环境信息

python 3.7.5

依赖库

  1. requests
  2. hashlib
  3. json
  4. sys
  5. base64
  6. Crypto.Cipher
  7. binascii
  8. struct

涉及到的Python特性

  1. 拼接字符串,关键字f结合{}包裹的代码变量就可以将字符串完成拼接;
	print(f"{sys._getframe().f_code.co_name} error!")
  • 1
  1. 类成员函数灵活定义
	def myfunc(self, *klist, **kmap):
		print("myfunc call")
  • 1
  • 2

上述参数定义解析,self用于接受对象实例指针;*klist用于表是可以接受任意多个单值参数,**kmap用于表示可以接受任意多个key=val表示的参数;结合python的字典特性可以做到非常的灵活;

  1. json对象和字符串之间的转化
#字符串转对象
jobj = json.loads(rsp.text)
#字典对象转json字符串
str_json = json.dumps(jobj)
#查看对象类型
type(str_json)
type(jobj)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. API接口调用封装
rsp = requests.post(url, json=data, verify=False, headers=custom_headers);

#ps
custom_headers = {
	"Content-Type":"application/json",
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

参数使用解析,url就是接口对应的url,json=datadata为请求参数字典,verify=False传False说明不需要证书,如果传入的为自签名证书的路径,则会校验服务端的证书,eg:verify=ca.crt;

  1. 快速打印一个Class实例所有字段的值
#eg:class
class A():
	#...
	pass

a = A()
print(a.__dict__)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

数据定义表达技巧

用json格式,key作为字段名,value作为类型,如

{
	tenantID:string,
	sn:string,
	lines:[]string,
	deviceInfo:[]dict{
		devname:string,
		ref:int32
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9