unittest测试框架书写脚本

一、unittest测试框架

Unittest测试框架的原理

执行指定的测试文件,并输出相关的测试报告

Unittest测试框架的设计原理

有一个testtestrunner类,来做测试的调用和执行

可以调用一个独立的测试方法,也可以一个测试套

Unittest测试框架的使用要求

Import unittest

定义测试类需要继承unittest,class测试类名(unittest.TestCase)

Unittest测试框架的基本组成要素

setup初始化,可选,前期的初始化工作

test_xxx测试方法

tearDown进行资源回收

Unittest测试框架,三种不同框架运行方式的对比

Unittest.mian()执行

按照asc码顺序顺序执行当前文件中对应类的所有测试方法

一般测试方法定义为test_case1,test_case2.....

特点:执行当前类中的所有测试方法

Suite=unittest.TestSuite()测试套执行

声明测试套:Suite=unittest.TestSuite()

通过addtest方法添加测试用例,suite.addTest(类名(“测试方法名”))

声明测试运行对象suite=unittest.TextTestRunneer

执行测试套runner.run(suite)

执行特点:按照加载的顺序和个数进行执行

测试文件执行

声明文件所在路径

定义discover对象并打开相关的文件,discover=unittest.defaultTestLoader(文件路径,pattern=’test_*.py’)

声明测试运行对象,runner=unittest.TestTestRunner

执行测试套,runner.run(discover)

特点:执行任意指定路径下的任意相关命名的python测试脚本,执行顺序也是按照asc码进行的

二、unittest.main()框架运行,注册脚本

import unittest
import requests
# 特点是:执行当前类中的所有测试方法

class testregister(unittest.TestCase):
    # 使用setup方法完成接口测试的初始化工作
    def setUp(self):
        self.url="http://localhost:8080/jwshoplogin/user/register.do"
        self.userinfo={"username":"吴飞飞",
                   "password":"123456",
                   "email":"feifei@qq.com",
                   "phone":"18658194658",
                   "question":"最喜欢看的书",
                   "answer":"幸福人生"}

    # 定义unittest测试方法
    def test_register(self):

        # 发送接口请求
        s=requests.session()
        response=s.post(self.url,data=self.userinfo).json()
        print(response)
        # result=str(response)
        # r=result.find("用户名已经存在")
        # if r>0:"注册接
        #     print(口测试通过")
        # else:
        #     print("注册接口测试失败")
        # 使用unittest框架断言来进行结果判断
        self.assertIn("用户名已经存在",str(response))

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

三、unittest.TestSuite(),测试套运行

# unittest.TestSuite(),测试套运行
# unittest测试套的便利之处是,想执行哪些方法就执行哪些方法,灵活性比较高
# 注意的点:运行模式要改为以python文件而不是测试框架模式运行
# 特点:按照加载的顺序跟个数进行执行

import unittest
import requests
class test_mulinterface(unittest.TestCase):
    def setUp(self):
        print("setUp")

    # 定义登录测试方法
    def test_case1(self):
        print("登录接口")
    # 定义注册测试方法
    def test_case2(self):
        print("注册接口")
    # 定义检查测试方法
    def test_case3(self):
        print("检查接口")
    def tearDown(self):
        print("tearDown")

if __name__ == '__main__':

    #  以main方法直接调用
    # unittest.main()
#***************************************
    # 声明测试套对象
    suite=unittest.TestSuite()
    suite.addTest(test_mulinterface("test_case2"))
    suite.addTest(test_mulinterface("test_case3"))
    # 声明测试运行对象
    runner=unittest.TextTestRunner()
    runner.run(suite)

四、以文件的方式进行框架的执行

import unittest
# 以文件的方式来进行框架的执行
# 声明文件所在路径
# 特点:指定任意路径下的任意相关命名的python测试脚本,执行每一个文件中的所有测试方法,顺序也是按照asc顺序执行
if __name__ == '__main__':

    testdir='./'
    discover=unittest.defaultTestLoader.discover(testdir,pattern='framworktest2.py')
    # 声明测试运行对象
    runner=unittest.TextTestRunner()
    runner.run(discover)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值