在测试过程中,经常会设计到上传文件,如上传图片、导入账号等,为了兼容该功能,对send_request方法再进行完善,将需上传的文件统一放到files文件夹下,在send_request方法中进行路径拼接,如此以来,在写用例时就无需指定路径,只要写上传的文件名即可。
def send_request(self, method, url, **kwargs):
# 用于调试时抓包代理
proxies = {
"http": "http://127.0.0.1:8888",
"https": "http://127.0.0.1:8888"
}
method = str(method).lower() #转换小写
# 基础路径的拼接和替换
url = self.base_url + self.replace_value(url)
# print(url)
# 参数替换
for key, value in kwargs.items():
if key in ['params','data','json','headers']:
kwargs[key] = self.replace_value(value)
elif key == "files":
for file_key, file_name in value.items():
# 对于上传文件的,文件统一放在files文件夹中,在用例中只写文件名,通过这边统一拼接路径
file_path = os.path.dirname(os.getcwd()) + '/files/' + file_name
value[file_key] = open(file_path, 'rb')
# for file_key, file_path in value.items():
# value[file_key] = open(file_path, 'rb')
self.__request_log(method, url, **kwargs)
try:
# fiddle 抓包时使用
# res = self.__session.request(method, url, proxies=proxies, verify=False, **kwargs)
res = self.__session.request(method, url, ** kwargs)
if res.status_code == 200:
self.__response_log(res)
return res
else:
self.log.warning("请检查接口%s" % url)
except TimeoutError:
self.log.warning("请求失败,请检查网络!")
return None
self.__response_log(res)
return res
yaml用例就可以简化成:
注意:这里files中的关键字“teacher”不是固定的,是根据接口文档中的参数名称。
最后:我这里有一个学习交流群,如果你有在学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。
下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。