unittest 实际项目操作流程


unittest 实际项目操作流程

一、开会讨论要测试的需求

掌握自动化测试流程和用例---每个企业不一样就不一一介绍了。

二、和开发拿需求文档

1、接口规范文档

2、接口网址或者类似规范文档

例如:

三、手工调试自动化

用接口工具,进行手工测试:Postman等工具

四、自动化开发编写

先了解unittest框架

熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,这个招聘的需求上也是经常见到的。python里面也有单元测试框架-unittest,相当于是一个python版的junit。

python里面的单元测试框架除了unittest,还有一个pytest框架,这个用的比较少,后面有空再继续分享。

一、unittest简介

1.先导入unittest

2.用help函数查看源码解析

3.查看描述:

Python unit testing framework, based on Erich Gamma's JUnit and Kent Beck's Smalltalk testing framework.

翻译:python的单元测试框架,是基于java的junit测试框架

二、简单用法

1.可以把上图的这段代码copy出来,单独运行,看看测试结果。

    Simple usage:
    
        import unittest
    
        class IntegerArithmeticTestCase(unittest.TestCase):
            def testAdd(self):  ## test method names begin 'test*'
                self.assertEqual((1 + 2), 3)
                self.assertEqual(0 + 1, 1)
            def testMultiply(self):
                self.assertEqual((0 * 10), 0)
                self.assertEqual((5 * 8), 40)
    
        if __name__ == '__main__':
            unittest.main()

2.第一行是导入unittest这个模块

3.class这一行是定义一个测试的类,并继承unittest.TestCase这个类

4.接下来是定义了两个测试case名称:testAdd和testMultiply

5.注释里面有句话很重要,这个要敲下黑板记笔记了:## test method names begin 'test*'

--翻译:测试用例的名称要以test开头

6.然后是断言assert,这里的断言方法是assertEqual-判断两个是否相等,这个断言可以是一个也可以是多个

7.if下面的这个unittest.main()是运行主函数,运行后会看到测试结果(跑了两个用例耗时0.000秒,两个用例都通过):

..
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

三、博客案例

1.写一个简单的case

2.判断title完全等于期望结果

3.运行通过,下面会有一个绿条显示:2 test passed

四、参考代码

# coding=utf-8

# coding=utf-8

import unittest

import requests

import time

class Test(unittest.TestCase):

    def setUp(self):

        self.s = requests.session()

    def tearDown(self):

        self.s.close()

    def test_1(self):

        '''获取参数'''

        headers = {             

            }

        globals()["id"] = headers

        self.assertTrue(headers)

    def test_2(self):

        '''获取自定义搜索规则描述'''

        url = "

        b = globals()["id"]

        print(b)

        print(url)

        r = requests.get(url, headers=globals()["id"])

        time.sleep(2)

        print(r.status_code)

        print(r.text)

        '''断言、返回值等于200就判断正确'''

        assert

    if __name__ == '__main__'

五、输出报告