zoukankan      html  css  js  c++  java
  • Python 接口测试之获取接口数据封装

      引言

      前面分享了一篇接口关键字封装的文章,内容主要是针对excel中接口测试数据的常量获取方法进行封装,也就是excel第一行字段,称之关键字。既然拿到了接口测试的关键字,那么关键字对应的值怎么获取呢?比如我们之前封装的方法中,可以获取到接口关键字url,但是excel有多条接口数据,每条接口数据对应的url值不一样。我们不可能一行一行的去拿到每条接口数据的url,所以将所有的方法统一封装一个类,要什么关键字的数据,从类中调用方法来获取即可。

      封装实现

      知道要干什么,下面就是实现了,代码如下:

    __author__ = 'Leo'
    
    from public.operate_excel import Operate_Excel
    from basic_method import testcases_keyword
    
    class getData(object):
        def __init__(self):
            self.op_excel = Operate_Excel()
    
        def get_case_nums(self):
            """获取测试用例条数"""
            return self.op_excel.get_sheet_nrows()
    
        def get_is_header(self,row):
            """是否携带请求头"""
            col = int(testcases_keyword.get_case_header())
            header = self.op_excel.get_sheet_cell(row,col)
            if header is not None:
                return header
            else:
                print("没有header!")
                return None
        def get_is_run(self,row):
            """是否运行"""
            col = int(testcases_keyword.get_case_is_execute())
            is_run = self.op_excel.get_sheet_cell(row,col)
            if is_run == 'yes':
                flag = True
            else:
                flag = False
            return flag
    
        def get_url(self,row):
            """获取url"""
            col = int(testcases_keyword.get_case_interface_url())
            url = self.op_excel.get_sheet_cell(row,col)
            return url
    
        def get_method(self,row):
            """获取请求方法"""
            col = int(testcases_keyword.get_case_method())
            method = self.op_excel.get_sheet_cell(row,col)
            return method
    
        def get_data(self,row):
            """获取请求数据"""
            col = int(testcases_keyword.get_case_payload())
            data = self.op_excel.get_sheet_cell(row,col)
            return data
    
        def get_excepted_result(self,row):
            """获取预期结果"""
            col = int(testcases_keyword.get_case_expected_result())
            excepted_result = self.op_excel.get_sheet_cell(row,col)
            if excepted_result == '':
                return None
            else:
                return excepted_result
    
        def get_actual_result(self,row,value):
            """获取实际结果"""
            col = int(testcases_keyword.get_case_actual_result())
            actual_result = self.op_excel.get_sheet_cell(row,col)
            self.op_excel.write_to_excel(row,col,value)
    
    
    if __name__ == '__main__':
        get_data = getData()
        print(get_data.get_is_run(1))
        print(get_data.get_url(1))

    运行结果:

     结果对比:

      总结

      上面封装的方法基本满足了项目接口测试的要求,当然也会有比较特殊的情况,具体根据实际项目进行添加。如果对自动化测试,测试开发感兴趣的朋友,可以加入测开交流群QQ:696400122。做一个有思想的测农,不念过往,不畏将来!

  • 相关阅读:
    javaWeb css图文混排
    Junit 测试 @Test 红名问题
    java面试题:已知一个数组[2,4,6,2,1,5],将该数组进行排序(降序,不能用工具类进行排序),创建两条线程交替输出排序后的数组,线程名自定义
    【转】正则表达式的分组
    正则表达式基础
    IIS连接数修改
    【整理】fiddler不能监听 localhost和 127.0.0.1的问题
    【转】WKT、SRID、EPSG概念
    WPF中查找控件的扩展类
    【转】告别码农,成为真正的程序员
  • 原文地址:https://www.cnblogs.com/liudinglong/p/12749273.html
Copyright © 2011-2022 走看看