python实现接口自动化测试

1. 接口自动化流程

  1. 需求分析

请求:url、方法、数据
响应:响应数据、状态码

  1. 挑选需求做自动化测试

时间、人员、接口复杂度

  1. 设计测试用例

  2. 搭建自动化测试环境

如python、pycharm

  1. 设计测试项目的架构

报告、参数化、用例执行框架

  1. 编写代码
  2. 执行测试用例

unittest、pytest

  1. 生成测试报告

2.接口清单整理

  • 收藏文章
    1. 请求
      1)请求url:
      2)请求方法:POST/GET
      3)请求参数:Headers = {. }
      4)请求报文:Body
    2. 响应
      1)响应状态码:
      2)响应数据:

    3.用例设计

  • 1.单接口的用例设计

  • 模板:
    id、模块、接口名称、请求url、用例名称、请求方法、请求参数类型、请求参数、预期结果、实际结果、备注
    注意:单接口用例设计的颗粒度较小(以测试数据为颗粒度)

  • 2.业务功能的用例设计
    多接口模板
    d、模块、接口名称、请求url、用例名称、请求方法、请求参数类型、请求参数、预期结果、实际结果、备注
    注意
  • 4. 项目搭建

    自动化测试目录结构

    1. 接口对象层api

    1)登录 login.py
    2)获取登录列表

    1. 用例业务实现层 case

    1)tese_login.py

    1. 用例报告report

    报告.html

    1. 工具层 tools
    2. 数据层 data

    1)login.json

    1. 运行入口 run_sutie.py

    4.1接口对象层

    1.login.py

    # 实现登录接口对象封装
    
    
    # 导包 requests
    import requests
    # 新建类 登录接口对象
    class ApiLogin(object){
    # 新建方法 登录方法
        def api_login_post(self,url,mobile,code):
        # headers定义
            headers = {"Content-Type":"application/json"}
    
        # data定义
        data = {"mobile": , "code":}
        # 调用post并返回响应对象
        return requests.post(url,headers=headers,json=data)
    
    
    }
    
    

    url、mobile、code需要从data数据文件读取,做参数化使用,这里使用动态传参

    2.test_login.py

    // 1.导包 unittest 、ApiLogin
    import unittest 
    form ApiLogin import 
    // 2. 新建测试类 继承unittest.TestCase
    class TestLogin(unittest.TestCase):
    	def  test_login(self):
    		// 暂时保存数据
    		url =
    		mobile = 
    		code = 
    		// 调用登录方法
    		obj = ApiLogin().api_post_login(url,mobile,code)
    		// 测试使用
    		print(‘查看测试结果’,obj.json())
    		// 断言 响应信息 、响应状态码
    		self.assertEquals("OK",obj.json()['message'])
    		// 响应状态码
    		self.assertEquals(201,obj.status_code)
    	
    // 3. 新建测试方法 test_login()
    1)参数化数据准备  url,mobile,code
    2)实例化 ApiLogin()类并调用登录方法
    3)断言 响应信息 、响应状态码
    

    解决数据存储问题
    data文件夹中创建一个login.json的文件

    步骤:

    1. 编写数据存储文件login.json

    data文件夹

    1. 编写读取json工具

    tools文件夹

    # 导包
    # 新建读取工具类
      1.使用初始化方法,获取要读取的文件名称
      		1)self.filepath = '.../data/'+filename
      2. 读取文件方法
      		1)打开json文件获取文件流
    		2)调用load方法加载文件流
    		3)返回结果
    


    1. 使用参数化动态获取参数数据

    parameterized参数化组件

    1. pip install parameterized
    2. @parameterized.expand(参数)
      1). 单个参数:列表格式 [值1,值2]
      2). 多个参数:列表嵌套元组[(参数1),(参数2)]
    // 导包
    import unittest
    from parameterized import parameterized
    // 新建测试类
    class TestPara(unittest.TestCase):
    	// 新建测试方法
    

    来源:草莓味的狮子座leo

    物联沃分享整理
    物联沃-IOTWORD物联网 » python实现接口自动化测试

    发表评论