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

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

作者: 厲铆兄 | 来源:发表于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

    参考笔记

    相关文章

      网友评论

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

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