美文网首页
『居善地』接口测试 — 14.接口自动化测试框架实现(三)

『居善地』接口测试 — 14.接口自动化测试框架实现(三)

作者: 繁华似锦Fighting | 来源:发表于2021-01-11 21:31 被阅读0次

    5、测试用例目录的实现

    script目录中存放的是测试用例,包括单接口和组合接口的测试用例。

    测试用例是在unittest框架下编写,用法同UI测试框架。

    (1)编写单接口测试用例

    """
    测试新增学院接口
    """
    
    # 测试用例是在unittest框架下编写
    import unittest
    from interface.add_departments import Add_department  # 导入新增学院接口
    from common.getKeyword_forResult import GetKeyword  # 返回值处理接口
    
    
    # 测试添加和查询学院的关联型接口
    class Test_Add_Dep(unittest.TestCase):
        def setUp(self) -> None:
            self.url = "http://127.0.0.1:8000/api/departments/"
            # 实例化Add_department
            self.add_dep = Add_department(self.url)
    
        # 开始编写测试用例
        def test_add_dep_success(self):
            """
            测试添加学院成功接口
            :return:
            """
    
            # 封装请求参数
            data = {
                "data": [
                    {
                        "dep_id": "T100",
                        "dep_name": "Test学院",
                        "master_name": "Test-Master",
                        "slogan": "Here is Slogan"
                    }
                ]
            }
    
            # 新增学院
            response = self.add_dep.add_dep(data)
            # 获取添加成功后的dep.id
            """
            # 因为直接使用该方法相当于又执行了一次添加学院接口
            # 所以不能够这样调用
            self.add_dep.get_depid(data)
            """
            res_dep_id = GetKeyword.get_keyword(response["create_success"], "dep_id")
            expect = "T100"
            self.assertEqual(res_dep_id, expect)
    
        # 测试添加学院完整性实现
        def test_add_dep(self):
            """
            测试添加学院接口
            :return:
            """
    
            # 封装请求参数
            data = {
                "data": [
                    {
                        "dep_id": "T101",
                        "dep_name": "Test学院",
                        "master_name": "Test-Master",
                        "slogan": "Here is Slogan"
                    }
                ]
            }
            # 新增学院
            response = self.add_dep.add_dep(data)
    
            """
            并返回值的验证有3种情况
                #1.添加成功
                #2.添川id已存在的学院
                #3.参敖错误(自己实现)
            根据对接口档的分析
                可以通过判断返回值是否包含“status_code”区分1,2和3,然后区分1,2
                根据返回值中already_exist.count是否为0,判断是否添加成功
            """
    
            # 这里只判断上面的1,2情况,工作中根据实际业务自己在完成
            if GetKeyword.get_keyword(response["already_exist"], "count") == 0:
                # 获取添加成功后的dep.id
                res_dep_id = GetKeyword.get_keyword(response["create_success"], "dep_id")
            else:
                res_dep_id = GetKeyword.get_keyword(response["already_exist"], "dep_id")
    
            expect = "T101"
            self.assertEqual(res_dep_id, expect)
    
    
    if __name__ == '__main__':
        unittest.main()
    
    

    (2)编写组合接口测试用例

    """
    测试新增和查询接口(组合接口业务)
        先新增--->再查询
    """
    # 测试用例是在unittest框架下编写
    import unittest
    from interface.add_departments import Add_department  # 导入新增学院接口
    from interface.get_departments import Get_Departments  # 查询学院接口
    from common.getKeyword_forResult import GetKeyword  # 返回值处理接口
    
    
    # 测试添加和查询学院的关联型接口
    class Test_Add_Get_Dep(unittest.TestCase):
        def setUp(self) -> None:
            self.url = "http://127.0.0.1:8000/api/departments/"
            # 实例化Add_department添加学院
            self.add_dep = Add_department(self.url)
            # 实例化Get_Departments查询学院
            self.get_dep = Get_Departments(self.url)
    
        # 开始编写测试用例
        def test_add_get(self):
            # 封装请求参数
            add_data = {
                "data": [
                    {
                        "dep_id": "T03",
                        "dep_name": "Test学院",
                        "master_name": "Test-Master",
                        "slogan": "Here is Slogan"
                    }
                ]
            }
    
            # 一下逻辑待查证,知道组合的形式即可。
            # 执行添加学院接口。目的:获取添加成功后的学院id
            # 获取新增学院后的id
            dep_id = self.add_dep.get_keyword(add_data, "dep_id")
            # 查询新增学院信息
            result = self.get_dep.get_department(dep_id)
            # 通过获取查询后的学院id作为实际结果
            res_dep_id = GetKeyword.get_keyword(result, "dep_id")
            # 获取预期结果id
            expect = GetKeyword.get_keyword(add_data, "dep_id")
            # 断言结果
            self.assertEqual(expect, res_dep_id)
    
    
    if __name__ == '__main__':
        unittest.main()
    
    
    

    相关文章

      网友评论

          本文标题:『居善地』接口测试 — 14.接口自动化测试框架实现(三)

          本文链接:https://www.haomeiwen.com/subject/srelaktx.html