Python接口自动化测试——five

前言——Python+unittest+requests+HTMLTestRunne完整搭建


一、unittest是什么?

unittest是Python中的单元测试框架。它拥有支持共享搭建、自动测试、在测试中暂停代码、将不同测试迭代成一组。

二、完整的框架搭建

1.引入库

代码如下(示例):

from common.configHttp import RunMain
from common.heapcase import Heapcase  #此处为自己封装的一些辅助方法,后续会讲到
from readExcel import HandleExcel
import json
import unittest
import paramunittest

2.框架代码

代码如下(示例):

sheet = '用户'  # 通过变量sheet来选择要执行的用例
login_xls = HandleExcel().get_xls('userCase01.xlsx', sheet)


@paramunittest.parametrized(*login_xls)
class testUserLogin(unittest.TestCase):
    def setParameters(self, case_name, apitype, url, method, headers, params, expectValue, resultValue, run):
        self.case_name = str(case_name)
        self.apitype = str(apitype)
        self.url = str(url)
        self.method = str(method)
        self.headers = str(headers)
        self.params = str(params)
        self.expectValue = str(expectValue)
        self.resultValue = str(resultValue)
        self.run = str(run)

    def description(self):

        self.case_name

    def setUp(self):
        """
        方法名固定,在每个测试函数执行前,执行一次,多个测试函数,执行多次
        一般做初始化工作, 比如: 实例化一个浏览器、浏览器最大化、隐式等待设置等需要提前的操作
        :return:
        """

        print(self.case_name + "≮" + self.apitype + "≯" + "测试开始前准备")

    def test01case(self):
        self.checkResult()

    def tearDown(self):
        """
        方法名固定,在每个测试函数执行后,执行一次
        一般做结束工作: 比如: 推出浏览器、关闭浏览器
        :return:
        """
        print("测试结束,输出log完结\n\n")

    def checkResult(self):
        if self.run == "Y":
            token = Heapcase().get_token(13111111113)
            Headers = {"Content-Type": "application/json","authorization": token}  # 通过自己封装的方法获取token并合拼带headers中
            # 读取Excel表格参数内容
            case_name = json.loads(self.case_name)
            method = self.method
            url = self.url
            # 判断请求的接口是否有headers和data
            if self.headers == '':
                header = None
            else:
                header = Headers
            if self.params == "":
                body_data = None
            else:
                body_data = json.loads(self.params)
            res = RunMain().run_main(method, url, body_data, headers=header)
            # 对返回的参数进行断言(目前取返回的codo值断言,是不严谨的)
            expectValue = json.loads(self.expectValue)
            try:
                self.assertEqual(res['code'], expectValue)
                HandleExcel().write_list_to_xls('userCase01.xlsx', sheet, case_name, 7, 'PASS', 7)  # 测试通过后将结果写入Excel表格
                print("\033[36;0m测试通过\033[0m")
            except BaseException as e:
                HandleExcel().write_list_to_xls('userCase01.xlsx', sheet, case_name, 7, 'Fail', 2)  # 测试失败后将结果写入Excel表格
                print("\033[31;0m测试未通过,断言错误:\033[0m" + str(e))
                self.assertEqual(res['code'], expectValue)
            return res
        else:
            print("\033[33;0m该条用例开关未打开\033[0m")

下面这个链接是关于unittest的单独讲解

unittest详细讲解

总结

以上就是本次的讲解,如果大家有什么其他的想法可以一起学习,感谢…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值