python自动化测试之上传文件

开始之前给大家推荐一个免费刷题的小程序,你去面试能被问到的题这里都有。

在测试过程中,经常会设计到上传文件,如上传图片、导入账号等,为了兼容该功能,对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%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值