接口测试自动化--工具类封装(四)

接口测试自动化--工具类封装(四),第1张

接口测试自动化--工具类封装(四) 一、requests进行自定义封装

        将requests进行自定义封装的代码片段如下:

# myrequests_util.py

import requests

class MyRequestsUtil:
    def __init__(self):
        # 编写自己需要的项目逻辑
        pass
    def myrequestsutil(self,MyUrl,MyMethod,MyHeaders=None,MyParam=None,MyContentTypr=None):
        try:
            if MyMethod == 'get':
                # requests的请求结果进行返回时,一般用json格式查看,故.json()
                myresponse = requests.get(url=MyUrl, headers=MyHeaders, params=MyParam).json()
            elif MyMethod == 'post':
                # post请求的两种不同参数方式
                if MyContentType == 'application/json':
                    myresponse = requests.post(url=MyUrl, headers=MyHeaders, json=MyParam).json()
                else:
                    myresponse = requests.post(url=MyUrl, headers=MyHeaders, data=MyParam).json()
            elif MyMethod == '...':  # 根据实际项目进行补充
                pass          
        except Exception as e:
            print("http请求失败,原因:{}".format(e))

if __name__ == '__main__':
    # 1.get请求方式试验
    myurl = "https://api.baidu.com/all_category"
    r = MyRequestsUtil()
    result = r.myrequestsutil(myurl, 'get')
    print(result)

    # 2.post请求方式试验
    myurl = "https://api.baidu.com/user_login"
    myparam = {"phone": "13712345678", "pwd": "1234567890"}
    mycontenttype = "application/x-www-form-urlencoded"
    r = MyRequestsUtil()
    result = r.myrequestsutil(myurl, 'post', MyParam=myparam, MyContentType=mycontenttype)
    print(result)

        代码注释:

        1.虽然是封装,但其内部还是调用的原requests()方法,可是封装的意义有很多

        2.封装可以实现自定义,在实际项目中有针对项目本身的逻辑需要自我实现,而不仅仅只有requests

        3.一次封装多次使用,每次新加代码时可以拿来封装代码类直接使用,而不需要重复编写requests的网络请求部分代码

        4.(有待想起来补充,或提问提醒)

二、requests自定义封装类的使用

        自定义封装类完成后就可以拿来使用了,可以验证是否符合自己的实际项目,以便提升测试工作效率。

        调用封装类代码片段如下:

# mycase1.py
# 第一个功能模块上有哪些接口,针对每个接口都编写方法,进行测试


# 导入unittest的原因是:
#       1.可以使用unittest的一些规则,包括继承unittest.TestCase
#       2.定义api方法时,使用test开头的方式
#       3.使用unittest.main()直接加载执行所有的方法

# 导入util的原因是:
#       1.使用自己封装的requests方法,使之符合自己的规则从而方便测试工作

import unittest
from util.myrequests_util import MyRequestsUtil

# 全局变量
T_host = "https://api.baidu.com"

class FirstTestCase(unittest.TestCase):
    def testCategoryList(self):
        request_util = MyRequestsUtil()
        homepage_url = T_host + "/pub/v1/web/all_category"
        response = request_util.myrequestsutil(homepage_url, 'get')
        # 对结果进行断言
        self.assertEqual(response['code'], 0, "接口请求的返回码错误")
        self.assertTrue(len(response['data']) > 0, "接口请求的返回无数据")
    def test2(self):
        # 编写自己的用例2
        pass
    def test3(self):
        # 编写自己的用例3
        pass

if __name__ == '__main__':
    unittest.main(verbosity=2)

        代码注释:

        1.应用自定义封装类时,顺便应用了之前的内容unittest

        2.利用封装实现了适应自己项目的测试流程

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5571802.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存