接口自动化框架

 

问题一:unittest.defaultTestLoader.discover返回的测试套件为空,明明测试用例文件下有用例,为啥会返回空呢?
解决:反复试验后发现原来是测试用例模块文件名包含了“-”,改为“_”后就OK了

pickle
pickle.dump(obj, file[, protocol]) 序列化对象,将对象以文件的形式存放在磁盘上
pickle.load(file) 反序列化对象,将文件中的数据解析为一个Python对象

json
json.dumps(obj,indent=2) indent表示缩进 序列化obj数据类型 转换为 json格式的字符串
json.loads(str) 将包含str类型的json文档反序列化为一个python对象

eval
执行字符串表达式
import datetime

def func(pattern="%Y-%m-%d %H:%M:%S",hours=0):
    return (datetime.datetime.now() + datetime.timedelta(hours=hours)).strftime(pattern)

if __name__ == '__main__':
    s = 'func(hours=-1)'
    value = eval(s)
    print(value)
eval vs ast.literal_eval
eval 不安全
eval将字符串转换成:列表/元组/字典
a='[1,3,4,5]'
eval(a)返回列表[1,3,4,5]
ast.literal_eval 相同效果,更安全

*args
args为元组 *的作用就是将元组转为位置参数
**kwargs
kwargs为字典 **的作用就是将字典转为键值传参模式

修改已有excel
import xlrd,xlwt
from xlutils.copy import copy
打开文件 oldbook=xlrd.open_workbook('文件路径')
复制文件 newbook=copy(oldbook)
获取工作簿 sheet=newbook.get_sheet('工作簿名称')
写入 sheet.write(0,0,'写入值')
保存 newbook.save('文件路径')

mysql查询返回字典设置
默认返回列表,若需返回字典,需设置cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

zip内置函数
a=[1,2,4]
b=[3,6,8,9,0]
zipped=zip(a,b) #返回一个对象
list(zipped) #将对象转化为列表 输出:[(1,3),(2,6),(4,8)]
dict(zipped) #将对象转化为字典 输出:{1: 3, 2: 6, 4: 8}

jsonpath
解析多层嵌套的json数据
jsonpath.jsonpath(dic_name,'$..key_name')#嵌套n层也能取到所有key_name信息,其中:“$”表示最外层的{},“..”表示模糊匹配,返回列表,当传入不存在的key_name时,程序会返回false

ddt
https://www.cnblogs.com/lslin/p/12546563.html

r
equests上传文件
files是一个字典
字典中的value是一个二进制对象
with open(filepath,'rb') as bfile:
  files = {"file":bfile,"userId":"550"}
requests.post(url,files=files)
字典format
    url = '/sys/api/Dictionary/pageIndex/{pageIndex}/pageNum/{pageNum}'
    params = {"pageIndex":"1","pageNum":"10000"}
    url = url.format(**params)
    print(url)

  




posted @ 2021-03-12 11:49  litian19870924  阅读(131)  评论(0)    收藏  举报