• Python 接口测试之接口关键字封装


    引言
    我们使用RF做UI自动化测试的时候,使用的是关键字驱动。同样,Python做接口自动化测试的时候,也可以使用关键字驱动。但是这里并不是叫关键字驱动,而是叫数据驱动。而接口测试的关键字是什么呢? 我们数据驱动的载体是Excel,那么excel里存放的数据是接口测试用例数据,一个接口数据里有常量和变量。变量就是一些参数对应的值,而常量就是接口的:host、path、method和data等等。而这些常量是固定不变的,我们可以将接口测试用例这些常量封装到一个类中,每次执行测试的时候,调用类中某个方法来读取excel中接口关键字对应的值。这些就称之为——关键字数据。

    接口关键字封装
    众所周知,Excel中第一行字段的值都为固定的值,即常量。可以用这些常量来定位每一个测试用例不同字段的坐标值,将获取到的值传递给接口。

    首先我们看看接口测试用例有哪些最主要的关键字常量:

    上图基本上是接口测试用例关键的字段,当然可以根据自己项目需要自行添加。

    我们在读取每条测试用例的时候,实际上是读取每行的数据,然后可以通过固定的关键字(列)来获取对应的值,最后传递给接口方法来执行接口测试。

    封装如下:

    1. class TestCaseKeyWord(object):
    2. """
    3. 定义测试用例关键字类
    4. """
    5. CASE_ID = '0'
    6. CASE_NAME = '1'
    7. IS_EXECUTE = '2'
    8. INTERFACE_URL = '3'
    9. METHOD = '4'
    10. HEADER = '5'
    11. REQUEST_DATA = '6'
    12. EXPECTED_RESULT = '7'
    13. ACTUAL_RESULT = '8'
    14. RESULT = '9'
    15. # 获取用例id
    16. def get_case_id():
    17. return TestCaseKeyWord.CASE_ID
    18. # 获取用例名称
    19. def get_case_name():
    20. return TestCaseKeyWord.CASE_NAME
    21. # 用例是否执行
    22. def get_case_is_execute():
    23. return TestCaseKeyWord.IS_EXECUTE
    24. # 接口url
    25. def get_case_interface_url():
    26. return TestCaseKeyWord.INTERFACE_URL
    27. # 用例方法
    28. def get_case_method():
    29. return TestCaseKeyWord.METHOD
    30. # 请求头
    31. def get_case_header():
    32. return TestCaseKeyWord.HEADER
    33. # 请求参数
    34. def get_case_payload():
    35. return TestCaseKeyWord.REQUEST_DATA
    36. # 预期结果
    37. def get_case_expected_result():
    38. return TestCaseKeyWord.EXPECTED_RESULT
    39. # 实际结果
    40. def get_case_actual_result():
    41. return TestCaseKeyWord.ACTUAL_RESULT
    42. # 用例执行结果
    43. def get_case_result():
    44. return TestCaseKeyWord.RESULT
    45. if __name__ == '__main__':
    46. print(get_case_id())
    47. print(get_case_is_execute())
    实例演示

    在excel中添加一条测试用例:

    新建testcase_test.py文件,获取接口测试用例名称:

    1. from basic_method import testcases_keyword
    2. from public.operate_excel import Operate_Excel
    3. get_excel = Operate_Excel()
    4. # 获取用例数
    5. print(get_excel.get_sheet_nrows()-1)
    6. # 返回用例名称关键字的列值
    7. case_name_col = int(testcases_keyword.get_case_name())
    8. print(case_name_col)
    9. # 获取第一条用例的名称
    10. get_name = get_excel.get_sheet_cell(1,case_name_col)
    11. print(get_name)

      执行结果:

    总结:

    感谢每一个认真阅读我文章的人!!!

    作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

     文档获取方式:

    加入我的软件测试交流群:632880530免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

    这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

    以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

    【软件测试行业现状】2023年了你还敢学软件测试?未来已寄..测试人该何去何从?【自动化测试、测试开发、性能测试】

  • 相关阅读:
    自行车轴承市场调研:预计2028年将达到25.6亿美元
    Linux权限
    刷题之莲子的软件工程学和机械动力学以及物理热力学
    计算机竞赛 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别
    Blood and Bone
    测试/开发程序员值这么多钱么?“我“不会愿赌服输......
    cxx17 尾随返回类型
    PyTorch檔案生成機制中的FileManager.write_with_template
    设计模式之享元模式
    Python得到字符的阿斯克码值 chr ord
  • 原文地址:https://blog.csdn.net/yjt2045263063/article/details/133934174