从零开始数据驱动接口自动化测试-Base基类-01

封装一个requests的基类,用与对各种接口的调用

在这里插入图片描述


# -*- coding: utf-8 -*-
# @Time    : 2020/1/13 19:55
# @Author  : Willam.zja
# @FileName: base_requests.py
# @Software: PyCharm
# @Blog    :https://blog.csdn.net/enemy_sprites
import sys
import os
sys.path.append(os.getcwd())
import requests
import json


class BaseRequests(object):
    def send_get(self,url,data,cookie=None,get_cookie=None,header=None):
        response = requests.get(url=url,params=data,cookies=cookie,headers=header)
        if get_cookie != None:
            cookie_value_jar = response.cookies
            cookie_value = requests.utils.dict_from_cookiejar(cookie_value_jar)
        res = response.text
        return res
    def send_post(self,url,data,cookie=None,get_cookie=None,header=None):
        response = requests.get(url=url,data=data,cookies=cookie,headers=header)
        if get_cookie != None:
            cookie_value_jar = response.cookies
            cookie_value = requests.utils.dict_from_cookiejar(cookie_value_jar)
        res = response.text
        return res
    def run_main(self,method,url,data,cookie=None,get_cookie=None,header=None):
        base_url = 'http://japi.juhe.cn/'  #这里需要写活
        if 'http' not in url:
            url = base_url + url
            #print(url)
        if method == 'get':
            res = self.send_get(url,data,cookie,get_cookie,header)
        else:
            res = self.send_post(url,data,cookie,get_cookie,header)
        try:
            res = json.loads(res)
        except Exception as e:
            print('解析json格式数据失败,请检查以下问题:\n网络是否通畅\n返回数据不能执行jsonn转换')
            raise e
        return res

request = BaseRequests()

if __name__ == '__main__':
    url = 'charconvert/change.from'
    data = {
            "text":"csdn论坛Millet-接口自动化测试",
            "type":1,
            "key":"5242d925b50cf44cc967f4e9451db712"
            }
    print(request.run_main('get', url, data))

在这里插入图片描述

先上代码组,然后讲解代码思路

代码思路

首先导入模块不说了
封装一个get接口和一个post接口
大家可能看不懂的是get_cooke这个参数,这个参数在下边的main中没有调用,是用于后期操作cookie回写的参数,后边会阐明,
在写一个run_main方法,用于调用时判断是调用封装好的哪一个接口,以及一个url的处理,url是传入的参数,如果没有传入host,就将host与url做一个拼接,如果传入一个完整的url,就不需要进行处理,直接使用即可,最后直接实例化一个对象request,一个简单的单例模式,用于其他模块的调用

总体分两步
1、封装requests接口
2、写一个调用接口的主函数

这些代码咱们还要改进,例如host这里就要写活,所以,需要写一些配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值