软件测试Day6|接口测试

  • 学习流程
    软件测试Day6|接口测试_第1张图片
  • 接口测试流程
    需求分析和评审–接口文档分析–编写测试用例–测试用例设计及评审–测试脚本构建–执行测试用例–缺陷管理和回归–测试报告和总结
  • 计网基础(URL、请求、响应)

接口文档解析

  • 拿到一个项目接口之后,先测试业务接口还是测试单个接口?(业务接口)
  • 如何测试业务接口(根据业务流程图梳理业务路径,设计测试用例覆盖每一条业务路径)
  • 如何进行接口文档解析(①分析接口之间的依赖关系②分析接口请求(URL、请求方法、请求头、请求参数类型、请求参数等)③分析接口响应(响应状态码、响应数据等))

postman

  • 设置请求方法==》设置URL,请求体,请求数据==》Send发送请求==》查看响应状态码、数据

  • 接口自动关联(两个接口之间需要传递数据 验证码接口==》公共容器保存数据==》登陆接口)

    1)postman添加环境,postman项目中添加环境

    2)验证码接口,获取验证码,在Tests中写脚本,保存验证码到环境变量

    var jsonData = pm.response.json() 获取验证码接口的json数据
    pm.environment.aet("uuid",jsonData.uuid) 设置环境变量保存数据
    

    3)登录接口引用环境变量数据,请求头和请求体都可引用环境变量数据,{{var_name}}

    // 请求体json数据中引用变量
    "uuid" :{{uuid}}
  • 上传文件 请求体里面 选择form-data

  • get提交查询参数①url中?参数1and参数2②在Params区域里设置

  • 批量执行:点击测试集Run–弹出cellection Runner窗口,点击运行–查看测试接口

  • 单接口测试

    等价类、边界值 | p优先级

    正向测试 逆向测试
    必填参数 P2 参数数据为空 P3
    全部参数 P2 参数类型不符 P3
    参数长度不符 P3
    业务规则不符 P3
  • potman断言:自动判定是否与预期结果符合(有模板)
    Tests区域编写断言

    // 判断响应状态
    pm.test("assert name"function(){ // pm.test()内置函数:参数1 断言名称, 参数2 回调函数
     pm.respeonse.to.have(200) //判断是否包含指定的状态码
    });
    
    // 包含指定字符串
    pm.test("body matches string"function(){ // pm.test()内置函数:参数1 断言名称, 参数2 回调函数
     pm.except(pm.response.text()).to.include("string_we_want_to_search") //判断是否包含指定的字符串
    });
    

    软件测试Day6|接口测试_第2张图片

    // json数据断言
    pm.test("body matches string"function(){ // pm.test()内置函数:参数1 断言名称, 参数2 回调函数
     var jsonData = pm.response.json();
     pm.except(jsonData.uuid).to.eql(100) //判断json数据中的uuid值是否等于100
    });
    
  • postman参数化–批量化运行
    将测试用例和断言需要的内容用列表保存为json格式

    [
    {"username":"manager","password":123456,"status":200,"message":"成功"}{"username":"","password":123456,"status":200,"message":"成功"}
    ]
    

    – 请求体中引用数据 {{username}}
    – 断言中引用数据 data.status data指代上传的测试用例json文件,名字不能改

requests、pytest自动化接口测试

你可能感兴趣的:(软件测试,python)