zoukankan      html  css  js  c++  java
  • Python 接口测试之接口关键字封装

      引言

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

      接口关键字封装

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

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

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

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

    封装如下:

    class TestCaseKeyWord(object):
        """
        定义测试用例关键字类
        """
        CASE_ID = '0'
        CASE_NAME = '1'
        IS_EXECUTE = '2'
        INTERFACE_URL = '3'
        METHOD = '4'
        HEADER = '5'
        REQUEST_DATA  = '6'
        EXPECTED_RESULT = '7'
        ACTUAL_RESULT = '8'
        RESULT = '9'
    
    # 获取用例id
    def get_case_id():
        return TestCaseKeyWord.CASE_ID
    
    # 获取用例名称
    def get_case_name():
        return TestCaseKeyWord.CASE_NAME
    
    # 用例是否执行
    def get_case_is_execute():
        return TestCaseKeyWord.IS_EXECUTE
    
    # 接口url
    def get_case_interface_url():
        return TestCaseKeyWord.INTERFACE_URL
    
    # 用例方法
    def get_case_method():
        return TestCaseKeyWord.METHOD
    
    # 请求头
    def get_case_header():
        return TestCaseKeyWord.HEADER
    
    # 请求参数
    def get_case_payload():
        return TestCaseKeyWord.REQUEST_DATA
    
    # 预期结果
    def get_case_expected_result():
        return TestCaseKeyWord.EXPECTED_RESULT
    
    # 实际结果
    def get_case_actual_result():
        return TestCaseKeyWord.ACTUAL_RESULT
    
    # 用例执行结果
    def get_case_result():
        return TestCaseKeyWord.RESULT
    
    
    if __name__ == '__main__':
        print(get_case_id())
        print(get_case_is_execute())
    

      实例演示

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

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

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

      

    执行结果:

      总结

      以上就是针对接口测试用例关键字的封装实操,常量封装十分简单,关键在测试方法与思想,更多自动化测试设计与想法,可以加入QQ测试开发交流群:696400122,一起讨论讨论,不积跬步无以至千里~

  • 相关阅读:
    Dora.Interception,为.NET Core度身打造的AOP框架 [3]:多样化拦截器应用方式
    Dora.Interception,为.NET Core度身打造的AOP框架 [2]:以约定的方式定义拦截器
    Dora.Interception,为.NET Core度身打造的AOP框架 [1]:更加简练的编程体验
    TechEmpower最新一轮的性能测试出炉,ASP.NET Core依旧表现不俗
    [文章汇总]ASP.NET Core框架揭秘[最近更新:2018/10/31]
    依赖注入[8]: .NET Core DI框架[服务消费]
    依赖注入[7]: .NET Core DI框架[服务注册]
    依赖注入[6]: .NET Core DI框架[编程体验]
    依赖注入[5]: 创建一个简易版的DI框架[下篇]
    依赖注入[4]: 创建一个简易版的DI框架[上篇]
  • 原文地址:https://www.cnblogs.com/liudinglong/p/12728302.html
Copyright © 2011-2022 走看看