美文网首页
『居善地』接口测试 — 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