python自动化从Unittest开始

自动化测试从Unittest开始

文章目录

  • 前言
  • 一、写一个算术方法类
    • 2.写测试用例类
  • 三、然后用untitest自带方法,写一个执行器


前言

一个测试小白的认知,最近想对公司的app进行自动化测试,进阶一下自己,关于自动化测试有的说用pytest框架,有的说用untitest框架,于是逛了好多论坛,也看了好多视频,觉得还是的从untitest开始学起,没有untitest的基础,对于pytest很吃亏,就在这上面记录一下吧


提示:以下是本篇文章正文内容,下面案例可供参考

一、写一个算术方法类

示例 首先创建一个test文件夹,然后创建aa.py文件

代码如下(示例):

class Arithmetic:
    def __init__(self,a,b):
        self.a=a
        self.b=b

    def add(self):
        return  self.a+self.b

    def sub(self):
        return self.a-self.b

    def multiply(self):
        return  self.a*self.b

2.写测试用例类

代码如下(示例):建一个py文件:bb ,写一个加法测试用例,一个加法测试用例

import unittest

from test.aa import Arithmetic

class Test_add(unittest.TestCase):
    # 继承了unittest 里面的testcase专门写测试用例
    # 一个用例就是一个函数,不能传参,只有self关键字
    # 所有的用例,函数都是以test开头
    def test_add1(self):
        a =Arithmetic(1,1).add()
        print("1+1的结果",a)
  

    def test_add2(self):
        a =Arithmetic(0,0).add()
        print(f"0 + 0的结果{a}")
        
    def test_add3(self):
        a =Arithmetic(-1,-2).add()
        print(f"-1+ -2的结果{a}")
       
class Test_sub(unittest.TestCase):
    def test_sub1(self):
        a =Arithmetic(1,1).sub()
        print("1 - 1的结果",a)

    def test_sub2(self):
        a =Arithmetic(0,0).sub()
        print(f"0 - 0的结果{a}")

    def test_sub3(self):
        a =Arithmetic(-1,-2).sub()
        print(f"-1 - -2的结果{a}")


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


使用main函数自测,执行的结果如下,用例通过:
需要注意的是返回的结果是按ASCII编码英文字母前后排序的python自动化从Unittest开始_第1张图片

三、然后用untitest自带方法,写一个执行器

代码如下(示例):创建cc.py文件
用例有三种写法,如只执行一条用例

import unittest

from test.bb import Test_add


suite=unittest.TestSuite()  # 先构造测试集,实例化测试套件

# 如只执行用例中 1+1 的这个测试用例
# 多条就写多个下面语句,改变参数
suite.addTest(Test_jia_jia("test_add1"))

# 下面是执行器,固定写法
runner = unittest.TextTestRunner()   
runner.run(suite)

结果
python自动化从Unittest开始_第2张图片

方法二:执行测试类下的所有测试用例

import unittest

from test.bb import Test_add


suite=unittest.TestSuite()  # 先构造测试集,实例化测试套件
# 执行Test_jia 用例中所以用例

loader=unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(Test_add))

# 下面是执行器,固定写法
runner = unittest.TextTestRunner()   
runner.run(suite)

结果
python自动化从Unittest开始_第3张图片

代码如下(示例):方法三:执行测试文件下的所有测试用例

import unittest

from test.bb import Test_add


# 第三种 具体到模块上
suite=unittest.TestSuite() #  先构造测试集,实例化测试套件
loader=unittest.TestLoader()
from test import bb  # 具体到模块
suite.addTest(loader.loadTestsFromModule(bb)

# 下面是执行器,固定写法
runner = unittest.TextTestRunner()   
runner.run(suite)

结果
python自动化从Unittest开始_第4张图片

用例执行完了,肯定需要一个判断依据,需要使用断言函数,

python自动化从Unittest开始_第5张图片
举个例子

class Test_add(unittest.TestCase):
    def test_add1(self):
        a =Arithmetic(1,1).add()
        print("1+1的结果",a)
        # assertEqual 后面跟三个参数,第一位预期结果,第二位实际结果
        #  第三位出错是报什么错,只有在出错时提示语才显示
        self.assertEqual(2, a) # 如果1+1=2,用例通过
        # 期望值放前面, 实际结果放后面

    def test_add2(self):
        a =Arithmetic(0,0).add()
        print(f"0 + 0的结果{a}")
        self.assertEqual(2, a,'这里写不写不重要,只有错误才显示在终端')
		# 如果0+0=2 用例通过,由于用例是错误的提示语才会出现
		
    def test_add3(self):
        a =Arithmetic(-1,-2).add()
        print(f"-1+ -2的结果{a}")
        self.assertNotEqual(2, a,'这是个预期结果不等于实际结果的断言')
        # 如果-1+ -2 != 2  用例通过

结果
python自动化从Unittest开始_第6张图片

最后输出HTML测试报告,这里需要上网虚招开源的代码,有很多,本人用的是这个:BSTestRunner,找到开源文件后下载放到同级目录即可,报告生成后会生成一个HTML文件,使用浏览器打开即可

import unittest
from a.BSTestRunner import BSTestRunner
# 导入HTML报告模板
from test.bb import Test_add


suite=unittest.TestSuite()
loader=unittest.TestLoader()
from test import bb  # 具体到模块
suite.addTest(loader.loadTestsFromModule(bb))
with open('aaa.html', 'wb') as f:
      runner = BSTestRunner(stream=f,
                            title='这是我的测试报告啊',
                            description='执行人testing')
      runner.run(suite)

效果图
python自动化从Unittest开始_第7张图片

你可能感兴趣的:(python自动化从Unittest开始)