zoukankan      html  css  js  c++  java
  • Python接口自动化测试的步骤

    为什么要做自动化

    • 降低成本,提前发现问题——如果每次对代码进行更改时,都重复执行一组非常强大的测试套件,可以降低问题出现在产品环境的风险。自动化测试有助于在软件开发生命周期的早期发现错误,从而降低交付故障软件的风险
    • 节省时间——虽然初期建立自动化测试需要花费大量的时间和人力,但是一旦自动化测试建立了,您就可以重用这些测试。自动化测试的执行速度明显快于手动测试,不易出错,且节省人力
    • 准确性和可靠性——人都是有惰性的,可能有时候会一个疏忽忘记测试,造成1个线上的BUG,而代码不会,只要你写好了就正常运行,会给你准确的数据

    功能测试和自动化测试的步骤

    功能测试

    • 写用例
    • 执行测试用例
    • 判断用例是否通过,通过对比实际结果和期望结果
    • 出具测试报告

    自动化测试

    import   unittest

    • 学用例(通过TestCase类)
    • 执行用例(1.通过TestSuite类,存储用例,2.TestLoader类找用例,加载用例,存到1的TestSuite中)
    • 判断用例是否通过(Assert)
    • 出测试结果报告(HtmlTestRunner)
    class TestMathMethod(unittest.TestCase): 
    #继承了unittest里面的TestCase专门来写case
        # 编写测试用例
        def  test_add_zero(self):
            pass
    # -*- coding: UTF-8 -*-
    
    
    def add(a, b):
        return a + b
    
    
    def minus(a, b):
        return a - b
    
    
    def multi(a, b):
        return a * b
    
    
    def divide(a, b):
        return a / b
    # -*- coding: utf-8 -*-
    
    import os
    import unittest
    import ddt
    from test.case.demo.mathfunc import add, minus, multi, divide
    from utils.readconfig import dataDir
    
    
    @ddt.ddt
    class TestMathFunc(unittest.TestCase):
        """Test mathfuc.py"""
    
        @classmethod
        def setUpClass(cls):
            print('This setUpClass() method only called once.')
    
        @classmethod
        def tearDownClass(cls):
            print('This tearDownClass() method only called once too.')
    
        def setUp(self):
            print('do something before test.Prepare environment.')
    
        def tearDown(self):
            print('do something after test.Clean up.')
    
        @ddt.file_data(os.path.join(dataDir, "demo_test_math.json"))
        @ddt.unpack
        def test_add(self, a, b, expected):
            """Test method add(a, b)"""
            self.assertEqual(expected, add(a, b))
    
        def test_minus(self):
            """Test method minus(a, b)"""
            self.assertEqual(1, minus(3, 2))
    
        def test_multi(self):
            """Test method multi(a, b)"""
            self.assertEqual(6, multi(2, 3))
    
        @unittest.skip("demonstrate skip")
        def test_divide(self):
            """Test method divide(a, b)"""
            self.assertEqual(2, divide(6, 3))
            self.assertEqual(2.5, divide(5, 2))
    
    
    if __name__ == '__main__':
        unittest.main(verbosity=2)
  • 相关阅读:
    Qt5.9/C++项目开发架构理论
    Qt5及模块架构分析
    简单工厂模式实例
    SQL Server 存储过程通用分页
    面试问题
    ASP.Net 基础知识
    财务自由之路名句
    javascript 根据输入的关键词自动提示
    .NET批量更新
    在windows7上配置xampp虚拟主机
  • 原文地址:https://www.cnblogs.com/xinhua19/p/14530858.html
Copyright © 2011-2022 走看看