美文网首页预见·自动化测试预见·软件测试技术
接口测试系列② | 接口测试开发学习总结

接口测试系列② | 接口测试开发学习总结

作者: 厲铆兄 | 来源:发表于2019-07-25 20:10 被阅读141次
接口测试开发总结_公众号封面首图_2019.07.25.png

[APT@1907]_接口测试开发学习总结_190724

00. 文档介绍

  • 作者:立师兄Linty(刘挺立)(wx:13017716416)
  • 内容:针对【1907期】接口测试开发学习的课程总结以及笔记记录
  • 时间:2019.7.24
  • 链接:https://mubu.com/doc/2LIGlptp0g

01. 敏捷流程

项目迭代

  • 敏捷:agile,是一系列的项目的方法论,如何项目做好
  • 目前的敏捷工具
    • TAPD:腾讯的 https://www.tapd.cn/ image
      • 项目:面向产品经理
        • 需求
      • 迭代:面向项目经理
        • 任务
        • 发布
        • 计划:在迭代中创建测试计划
          • 用例:在测试计划中编写(或者关联)测试用例
          • 缺陷:在测试计划中执行测试用例,失败的转为BUG
          • 报告:在测试计划中生成详细的测试报告
    • 云效:阿里的 https://www.aliyun.com/product/yunxiao image
    • JIRA:大公司最常用的,付费的,美国的
      • 定制能力很强
        • 根据公司的研发流程定制任何形式的软件
        • 可以敏捷
        • 可以瀑布
        • 可以双V
        • 可以螺旋
    • 禅道:青岛的,前阿里员工开发的,免费的
      • 阿里的思路
        • 产品:产品经理关注
          • 计划
          • 发布
          • 需求
        • 项目(迭代)
          • 任务
          • 提测
        • 测试
          • 版本
          • 计划
          • 用例
          • 缺陷
      • 偏基础,大而全。
      • 用的公司多
      • 文档和视频很全
    • Tuleap:https://www.tuleap.org/
    • Rally:https://www.ca.com/us/products/ca-agile-central.html

用户故事

  • User Story,描述需求
    • 角色
    • 功能
    • 价值
    • 模板:作为一个xx用户,我希望有xx功能,以便实现xx价值
  • Feature,特性
    • 一个特性可以有 多个 用户故事

工件会议

  • Backlog
    • Product Backlog:产品的待开发清单
    • Sprint Backlog:迭代的待开发清单
  • kanban:任务进度
    • 未开始的
    • 进行中的
    • 已完成的
  • 燃烧图,燃尽图,burn down chart
  • 每日站会
    • 我昨天完成了什么
    • 我今天要做好什么
    • 我当前遇到什么问题
  • 总结会:一个迭代完成以后,发布了版本,总结
    • 我做的好的地方
    • 我做的不好的地方
  • 计划会:产品经理 + 项目经理
    • 上半场:讲需求,我们问需求的细节(输入的标准,输出的影响)
    • 下半场:分任务,我们要估计时间

参考笔记

02. 持续集成

代码管理

  • Git:分布式,只要 clone 了,就和服务器的仓库一样
    • clone
    • pull
    • commit
    • add
    • push
    • revert : 撤回
    • cleanup:清理
  • SVN:集中式,无论怎么做,服务器是全的,其他人都是一部分。连不上服务器,连你那一部分也看不到
    • check out
    • update
    • commit
    • add
    • push
    • revert : 撤回
    • cleanup:清理

持续测试

  • 敏捷模式的测试的常态
  • 持续
    • 新的功能
    • 修复缺陷
  • 接受变化
  • 小步快跑
  • 工具:Jenkins
    • 开发:构建版本,发布版本
      • 开发提交代码
      • Jenkins 拉取代码
      • 构建代码(一般是 maven,ant,gradle)
      • 发布 deploy:复制构建好的 *.war 到 tomcat 或者 jetty 这样服务器
        • 停止服务器
        • 备份老的 *.war 包
        • 备份配置文件
        • 备份数据库脚本
        • 更新新的 *.war 包
        • 变更配置文件
        • 更新数据库脚本
        • 启动 服务器
    • 测试:冒烟测试,在线监控,回归测试(不多,手工居多)
      • 测试提交测试脚本
      • Jenkins 拉取脚本
      • Jenkins 执行脚本
    • Jenkins 任务(工程、job、item)视角
      • 配置
        • 源代码
        • 触发构建
          • 提交代码就触发构建(插件支持)
          • 定时构建 periodically image image
            • TZ=Asia/Shanghai:时区
            • 五个部分
              • H(0-29)/10:分钟
                • H 是hash,任意一次开始之后算起
                • 如果没有执行,从 01 分开始
                • (0-29)/10 每个小时的 第 0分钟 到 第29分钟,每10分钟执行一次
              • 9-19:小时,每天的 9点到19点执行,其他时间不执行
                • day of month:每个月几号执行,* 是每一天
                • month:几月执行,* 是每个月
                • week:星期几执行,* 是星期1-7
          • 在别的指定的任务构建完成后,开启 image
        • 构建
        • 构建之后
          • 发邮件 image

参考笔记

03. 需求分析

实体分析

  • Entity 实体
    • 被测试的对象有哪些实体
    • 关联的对象有哪些实体
  • 对号入座:无论是被测试的,还是关联的,每一个实体对应的
    • 增加
    • 删除
    • 修改
    • 查看
    • 列表
  • 被测试的有多少个实体
  • 被测试的每个实体都有哪些对号入座
  • 都有哪些关联的实体
  • 下一步:确定测试范围

测试范围

  • 界面
    • 展示:纯看
    • 操作:交互:鼠标、键盘、扫描
  • 功能(重点)
    • 前提
      • 关联
      • 登录
      • 权限
    • 描述
      • 合法输入
      • 唯一属性
  • 数据
    • 数据库表对应实体
    • 后台数据查看
    • 抓包数据:在客户端的视角,看前端到后端的过程

参考笔记

04. 测试设计

测试场景

  • 有效
    • 合法输入:输入输出(最基本的测试)
    • 复杂场景
      • 流程长,在中间的节点:放弃 或者 下一步
      • 使用关联数据
      • 效果影响
  • 无效
    • 非法输入
    • 合法输入,业务不匹配
      • 使用了错误的关联:导致脏数据:关联
      • 前提不对:不登录,或者没权限:前提
      • 操作不存在(已更新的)数据:效果

测试方法

  • 手工
    • 覆盖哪些场景
    • 工具
    • 方法
    • 造数
  • 自动化
    • 覆盖哪些场景
    • 工具
    • 方法
    • 造数
  • 自动化测试的覆盖率
  • = 自动化测试用例数 / 总用例数
  • = 自动化测试场景数 / 总场景数
  • 考虑
    • 成本:人工时间,设备资源
    • 风险:技术难度
  • 介绍测试方法的维度
    • 黑盒、白盒、灰盒
    • 静态、动态
    • 单元、集成、冒烟、系统、验收
    • 功能、性能、安全、兼容、易用、精准
    • 手工、自动化(从测试的执行角度)

参考笔记

05. 接口原理

接口场景

  • APP 调用自己的接口
    • 测试接口可以集中 “有效场景”
  • 使用第三方的接口
    • 测试接口要重点测“无效场景”

接口原理

  • 请求
  • 响应
  • 接口的协议:HTTP
  • 还有
    • dubbo
    • kafka

参考笔记

06. 测试工具

Postman

  • 输入
    • 方法
    • url
    • params( 处理 URL)
    • authorization
    • body
    • test(JavaScript)
  • 环境变量 Environment
  • 在线监控

JMeter

  • JMeter 可以不会
  • 线程组
  • HTTP 请求
  • JSON 断言
  • JSON 关联
  • 查看结果树
  • 请求头管理器
  • 测试报告
  • CSV
  • 循环控制器

定制方案

  • base:一大堆方法、封装的各种类
    • build_request()
    • build_logger()
    • read_csv()
    • read_txt()
    • read_json()
    • read_yaml()
    • BoxRequest
    • JsonHelper
    • Logger
  • page:
    • ApiPage
      • 写业务,要继承ApiPage
      • _parse_http_resp()
      • _handle_params()
  • case:
    • ApiCase
      • 写用例要继承 ApiCase
      • 三个部分
        • 读CSV
        • 准备:pytest.fixture
          • init_logger()
          • init_request()
          • yield
          • wait()
        • 步骤:pytest.mark.parametrize, allure.tag, title, testcase, story, feature, serverity...level
          • 解析 CSV 输入
          • 调用场景
          • 写日志记录 info()
          • 解析CSV 期望,场景结果:做断言
            • assert_equal()
            • assert_int_equal()
            • assert_decimal_equal()
            • assert_in()
            • assert_json_equal()
            • assert_loop_equal()
            • 断言失败会截图:
              • @allure.step
              • JSON
              • 请求
              • 响应
          • 可能会有关联:场景结果作为下一个步骤的输入
  • runner:bat 文件
    • pytest
    • allure generate
  • 规则
    • 测试用例
    • 文件名一致
      • py
      • csv
      • yaml
    • 方法名 = 文件名
    • 类名 = 大骆驼(文件名):驼峰命名法
    • 全局变量 可以用 _ 或者 __ 开头
    • 方法:动词 + 名词 或者只有动词
    • 代码要格式化
      • code | reformat code
      • 注释:写完整
        • 写注释:作用理顺写代码的思路

参考笔记

07. 数据验证

SQL查询

  • 重点是思路
  • 思路 = 分步思路 + 关联
  • WHERE
  • ORDER BY
  • GROUP BY ... HAVING
  • INNER (LEFT)JOIN ... ON
  • 子查询
  • 创建表、插入数据、删除表、删除数据、修改表、修改数据

备份恢复

  • 写出 bat 脚本
  • 备份:mysqldump
  • 恢复:source

Fiddler抓包

  • 抓包 HTTPS
  • 抓包 手机

参考笔记

08. 缺陷定位

前端后端

  • 前端:客户端
    • 浏览器:只要在浏览器看到的部分,全部是前端
      • 后台也是前端
    • APP:手机的部分,原生APP ,也包括 H5,都是前端
    • 桌面版程序
  • 后端
    • 应用服务器
      • 日志问题
      • Java 问题
      • PHP 问题
      • C#/ .NET (dot net)
    • 数据库服务器:数据库问题
  • 区分:
    • 抓包区分
      • 请求错误:前端
      • 响应错误:后端
    • 分析日志
      • 分析程序产生的日志
      • 日志包含了请求和响应

业务逻辑

  • 关联
  • 前提
  • 效果

日志分析

  • 看请求
  • 看SQL
  • 找ERROR(例如Java 的:exception)
    • ERROR
    • ERR
    • EXCEPTION

参考笔记

09. 求职面试

面试思路

  • 准备主要介绍什么
  • 分别在什么阶段介绍
    • 自我介绍
    • 职责描述
    • 技术能力

询问职责

  • 弄明白面试的职位的需求:
    • 对方想招什么样人的
    • 对方想要解决什么问题
  • 让自己合适

转移难题

  • 好的办法:借此问对方在项目中的使用情况
  • 进行反问:提供几个你认为是类似的,让对方选

针对发问

  • 人事:
    • 我们测试团队规模怎么样
    • 我们公司人员流动性大么
    • 我们公司社保公积金按什么基数交,公积金的比例
    • 我们公司怎么扣税
    • 公司对测试岗位的职业规划是怎么安排的,级别,调薪
  • 技术
    • 开发
      • 目前开发和测试是一种什么工作流程
        • 先开发好,集中测
        • 还是互联网的敏捷,开发一点就测试一点
      • 会不会测试没有时间执行测试,开发延误
    • 测试主管
      • 团队的测试有多少个人,开发有多少个人
      • 我们现在主要测试什么项目?后端?数据库?接口?APP的?WEB的?
      • 有没有使用一些编程,工具,源代码管理,Jenkins 这些?
  • 老板
    • 制造一些机会,听老板吹牛
    • 公司用人看重哪些方面

参考笔记

10. Selenium

参考笔记

11. Linux

参考笔记

12. MySQL

参考笔记

13. Python

参考笔记

相关文章

  • 接口测试系列② | 接口测试开发学习总结

    [APT@1907]_接口测试开发学习总结_190724 00. 文档介绍 作者:立师兄Linty(刘挺立)(wx...

  • 接口测试怎么做

    目录: 一、什么是接口? 二、接口测试流程 三、接口测试工具 四、接口测试技术点 五、总结 导读: 为什么要做接口...

  • 接口测试一:接口测试流程

    接口测试一:接口测试流程 学习目标:了解接口测试自动化测试的流程接口自动化测试的流程1、需求分析:了解有有哪些接口...

  • 接口自动化测试系列之PHPUnit-接口测试的步骤

    接着上篇文章接口自动化测试系列之PHPUnit-接口测试基础 继续来说 接口测试的步骤 接口测试的步骤并没有什么特...

  • 面试题1

    根据网络资料,总结了以下一些常见的接口测试面试题: 为什么要做接口测试? 接口测试能发现哪些问题? 接口测试怎么测...

  • postman+newman框架之生成接口测试报告

    做测试的同仁,对于接口测试的都应该了解,接口测试不简单的是在开发时期,开发已写完完备的接口文档进行测试就完事的。 ...

  • JMeter(1) 介绍+环境+安装+使用

    开发接口测试案例的整体方案: 分析出测试需求,并拿到开发提供的接口说明文档; 从接口说明文档中整理出接口测试案例(...

  • Jmeter在企业中如何设计场景

    开发接口测试案例的整体方案:1、分析测试需求,并拿到开发提供的接口说明文档;2、从接口说明文档中整理出接口测试案例...

  • 性能测试学习3 jmeter接口测试主要参数

    一、jmeter接口测试关键参数 进行接口测试,那必须先得具备接口测试文档,一般由开发产出,在接口文档中主要关注以...

  • 接口测试概述

    接口(interface)的概念 常见接口名词 接口测试: 接口测试目的: 接口测试的重要性: 接口测试流程 接口...

网友评论

    本文标题:接口测试系列② | 接口测试开发学习总结

    本文链接:https://www.haomeiwen.com/subject/chekrctx.html