[APT@1907]_接口测试开发学习总结_190724
00. 文档介绍
- 作者:立师兄Linty(刘挺立)(wx:13017716416)
- 内容:针对【1907期】接口测试开发学习的课程总结以及笔记记录
- 时间:2019.7.24
- 链接:https://mubu.com/doc/2LIGlptp0g
01. 敏捷流程
项目迭代
- 敏捷:agile,是一系列的项目的方法论,如何项目做好
- 目前的敏捷工具
- TAPD:腾讯的 https://www.tapd.cn/:
- 项目:面向产品经理
- 需求
- 迭代:面向项目经理
- 任务
- 发布
- 计划:在迭代中创建测试计划
- 用例:在测试计划中编写(或者关联)测试用例
- 缺陷:在测试计划中执行测试用例,失败的转为BUG
- 报告:在测试计划中生成详细的测试报告
- 项目:面向产品经理
- 云效:阿里的 https://www.aliyun.com/product/yunxiao
- JIRA:大公司最常用的,付费的,美国的
- 定制能力很强
- 根据公司的研发流程定制任何形式的软件
- 可以敏捷
- 可以瀑布
- 可以双V
- 可以螺旋
- 定制能力很强
- 禅道:青岛的,前阿里员工开发的,免费的
- 阿里的思路
- 产品:产品经理关注
- 计划
- 发布
- 需求
- 项目(迭代)
- 任务
- 提测
- 测试
- 版本
- 计划
- 用例
- 缺陷
- 产品:产品经理关注
- 偏基础,大而全。
- 用的公司多
- 文档和视频很全
- 阿里的思路
- Tuleap:https://www.tuleap.org/
- Rally:https://www.ca.com/us/products/ca-agile-central.html
- TAPD:腾讯的 https://www.tapd.cn/:
用户故事
- User Story,描述需求
- 角色
- 功能
- 价值
- 模板:作为一个xx用户,我希望有xx功能,以便实现xx价值
- Feature,特性
- 一个特性可以有 多个 用户故事
工件会议
- Backlog
- Product Backlog:产品的待开发清单
- Sprint Backlog:迭代的待开发清单
- kanban:任务进度
- 未开始的
- 进行中的
- 已完成的
- 燃烧图,燃尽图,burn down chart
- 每日站会
- 我昨天完成了什么
- 我今天要做好什么
- 我当前遇到什么问题
- 总结会:一个迭代完成以后,发布了版本,总结
- 我做的好的地方
- 我做的不好的地方
- 计划会:产品经理 + 项目经理
- 上半场:讲需求,我们问需求的细节(输入的标准,输出的影响)
- 下半场:分任务,我们要估计时间
参考笔记
- APT_项目敏捷流程_190617 https://mubu.com/doc/35Rh1Whtrg
- APT_测试开发入门_181215 https://mubu.com/doc/TXPtPYBWi
- APT_敏捷项目流程_190225 https://mubu.com/doc/2E3SF0Ahbg
- APT_敏捷流程_计划会 https://mubu.com/doc/38Qc6h5Gng
- APT_敏捷流程与计划会_190312 https://mubu.com/doc/14z01YfgYg
- APT_TAPD的使用 https://mubu.com/doc/3BquGnuxgg
- APT_TAPD测试执行过程_190328 https://mubu.com/doc/1maWvCgMQg
- APT_测试流程_190327 https://mubu.com/doc/1uDXgCZqkg
- APT_测试结项报告_190401 https://mubu.com/doc/24UTOkKYcg
- APT_接口测试迭代执行_190423 https://mubu.com/doc/1W14lu2cPg
- APT_接口自动化测试项目迭代 https://mubu.com/doc/1S_HWI35Hg
- APT_hat自动化测试方案使用_190513 https://mubu.com/doc/3TrpGk9d6g
- APT_hat自动化测试方案示例_190514 https://mubu.com/doc/1pX-eNv81g
- APT_测试框架_190105 https://mubu.com/doc/1eUG05TPcg
- APT_测试框架的应用_190106 https://mubu.com/doc/3wFNF8oDUg
- APT_Web 接口自动化测试方案_190324 https://mubu.com/doc/3A8LwQYIxg
- **ATP_自动化测试全景方案分析_190511 **https://mubu.com/doc/1Z4zVsRlrg
- APT_测试开发技术探讨沙龙_20181209 https://mubu.com/doc/1rF2GDWrGg
- APT_敏捷测试流程_190311 https://mubu.com/doc/2LIGlptp0g
- APT_自动化测试方案设计_HAT_190512 https://mubu.com/doc/2WvPDrDqWg
- **APT_自动化测试方案设计_HAT_190526 **https://mubu.com/doc/ImOHXPsmi
- APT_TAPD与Scrum https://mubu.com/doc/3TkshxKFig
- APT_敏捷入门与工具 https://mubu.com/doc/2SWeoP1TFg
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
- 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
- H(0-29)/10:分钟
-
在别的指定的任务构建完成后,开启
- 构建
- 构建之后
-
发邮件
-
发邮件
- 配置
- 开发:构建版本,发布版本
参考笔记
- APT_敏捷与持续集成_190618 https://mubu.com/doc/2utPEOa3Gg
- APT_Git 介绍与使用_190529 https://mubu.com/doc/3T6La_z6tg
- APT_Git的使用场景 https://mubu.com/doc/1bBcY4fqrg
- APT_Jenkins_上手使用_190619 https://mubu.com/doc/2ct1sgTGDg
- APT_Jenkins问题和Git使用_190620 https://mubu.com/doc/1qZGhKt8yg
- APT_使用 hat 测试方案_190530 https://mubu.com/doc/2LzDgldzng
- APT_DevOps理念以及落地_190413 https://mubu.com/doc/3LXwrU2-8g
- APT_hat_fork_和Jenkins使用_190516 https://mubu.com/doc/1gQP9hUzqg
- APT_git_源代码管理_190426 https://mubu.com/doc/2iSi_pE0tg
- APT_Git源码控制与项目协同_190119 https://mubu.com/doc/AkIPzid1i
- APT_计划会git多仓库使用_190506 https://mubu.com/doc/2qL5q1T_Bg
- APT_持续集成与DevOps_190517 https://mubu.com/doc/3BgO_W5Hkg
03. 需求分析
实体分析
- Entity 实体
- 被测试的对象有哪些实体
- 关联的对象有哪些实体
- 对号入座:无论是被测试的,还是关联的,每一个实体对应的
- 增加
- 删除
- 修改
- 查看
- 列表
- 被测试的有多少个实体
- 被测试的每个实体都有哪些对号入座
- 都有哪些关联的实体
- 下一步:确定测试范围
测试范围
- 界面
- 展示:纯看
- 操作:交互:鼠标、键盘、扫描
- 功能(重点)
- 前提
- 关联
- 登录
- 权限
- 描述
- 合法输入
- 唯一属性
- 前提
- 数据
- 数据库表对应实体
- 后台数据查看
- 抓包数据:在客户端的视角,看前端到后端的过程
参考笔记
- APT_如何开展测试_190704 https://mubu.com/doc/2MVVl3vFGg
- APT_实体分析和测试设计_190702 https://mubu.com/doc/3mZ2SRfLHg
- APT_敏捷的验收标准与测试范围模型分析_190304 https://mubu.com/doc/-A_frqELi
- APT_需求的验收标准分析方法_190227 https://mubu.com/doc/2o2o4XH2Eg
- APT_OnePage一页纸测试计划详解1_190314 https://mubu.com/doc/152-3M5wdg
- APT_OnePage一页纸测试计划详解2_190315 https://mubu.com/doc/3AxGbGwbVg
- APT_质量模型与一页纸测试计划_190228 https://mubu.com/doc/3tEyiAhmzg
- APT_一页纸和Markdown语法_190301 https://mubu.com/doc/1X5bNdNgOg
- **APT_一页纸测试计划分析模型 ****@scrum****敏捷测试 **https://mubu.com/doc/1f1RUCXuZg
- APT_接口测试学习情况考察 https://mubu.com/doc/3Io5sPQIXg
04. 测试设计
测试场景
- 有效
- 合法输入:输入输出(最基本的测试)
- 复杂场景
- 流程长,在中间的节点:放弃 或者 下一步
- 使用关联数据
- 效果影响
- 无效
- 非法输入
- 合法输入,业务不匹配
- 使用了错误的关联:导致脏数据:关联
- 前提不对:不登录,或者没权限:前提
- 操作不存在(已更新的)数据:效果
测试方法
- 手工
- 覆盖哪些场景
- 工具
- 方法
- 造数
- 自动化
- 覆盖哪些场景
- 工具
- 方法
- 造数
- 自动化测试的覆盖率
- = 自动化测试用例数 / 总用例数
- = 自动化测试场景数 / 总场景数
- 考虑
- 成本:人工时间,设备资源
- 风险:技术难度
- 介绍测试方法的维度
- 黑盒、白盒、灰盒
- 静态、动态
- 单元、集成、冒烟、系统、验收
- 功能、性能、安全、兼容、易用、精准
- 手工、自动化(从测试的执行角度)
参考笔记
- APT_接口自动化测试_用例编写_190603 https://mubu.com/doc/1P3g0Z76Mg
- APT_接口自动化测试用例脚本和测试造数_190701 https://mubu.com/doc/2MMMEw9Lxg
- ATP_接口测试用例进阶_190626 https://mubu.com/doc/35et9xDe_g
- ATP_自动化测试的脚本编写解析_190625 https://mubu.com/doc/1l_rB2VF5g
- APT_需求和测试流程方法_190313 https://mubu.com/doc/2gR-OL75ig
- APT_接口测试分步_解析_190518 https://mubu.com/doc/1qHA0kbfgg
- APT_功能测试流程与重点 https://mubu.com/doc/ZBuXTTn0i
- APT_测试计划的具体注意事项 https://mubu.com/doc/2S8hlfxFpg
05. 接口原理
接口场景
- APP 调用自己的接口
- 测试接口可以集中 “有效场景”
- 使用第三方的接口
- 测试接口要重点测“无效场景”
接口原理
- 请求
- 响应
- 接口的协议:HTTP
- 还有
- dubbo
- kafka
参考笔记
- APT_Web 接口原理_190309 https://mubu.com/doc/1xSRioQB4g
- APT_NSA项目部署_190612 https://mubu.com/doc/1WsgCmTXOg
- APT_Ping++支付接口自动化测试_190601 https://mubu.com/doc/15wnrHBkPg
- APT_接口自动化测试用法_任务4_20190615 https://mubu.com/doc/2LEa4Qt6-g
- APT_Web原理与Web接口_190522 https://mubu.com/doc/QfmUFK3si
- APT_从类的角度使用接口_190523 https://mubu.com/doc/30ZFGVlUAg
- APT_接口原理和测试点_190414 https://mubu.com/doc/3eQoCqBgkg
- APT_Web接口测试原理解析 https://mubu.com/doc/2yx6MuFfMg
- APT_Fiddler 的基本使用 https://mubu.com/doc/3G7_YA0flg
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()
- ApiPage
- 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
- 请求
- 响应
- 可能会有关联:场景结果作为下一个步骤的输入
- ApiCase
- runner:bat 文件
- pytest
- allure generate
- 规则
- 测试用例
- 文件名一致
- py
- csv
- yaml
- 方法名 = 文件名
- 类名 = 大骆驼(文件名):驼峰命名法
- 全局变量 可以用 _ 或者 __ 开头
- 方法:动词 + 名词 或者只有动词
- 代码要格式化
- code | reformat code
- 注释:写完整
- 写注释:作用理顺写代码的思路
参考笔记
- APT_接口自动化测试梳理和Postman使用_190702 https://mubu.com/doc/39a_GI3VIg
- ATP_requests库使用get和post接口_190524 https://mubu.com/doc/1EFgpihp-g
- APT_接口自动化测试项目代码_190528 https://mubu.com/doc/3LXtLBKgNg
- APT_抓包问题和python代码的修改和尝试理解_190621 https://mubu.com/doc/1MvKEgGpig
- APT_接口自动化测试_使用描述_190606 https://mubu.com/doc/2FBDI48xWg
- APT_接口自动化测试上手190611https://mubu.com/doc/2by16CRipg
- APT_测试用例脚本结构和pytest框架进阶_090627 https://mubu.com/doc/1AL7U7S6ug
- APT_业务代码编写_100703 https://mubu.com/doc/2ZRFzYG8kg
- APT_接口自动化测试业务类_190604 https://mubu.com/doc/Qt2Fx6SLi
- ATP_接口测试总结_问题思考_190715 https://mubu.com/doc/2xm8RdxaUg
- APT_接口自动化测试总结_测试用例_190718 https://mubu.com/doc/3x-2Mwlggg
- ATP_接口自动化测试总结——业务场景_190722 https://mubu.com/doc/1IKClCVCpg
- APT_接口自动化测试业务代码评审_190605 https://mubu.com/doc/1nRER1XaOg
- APT_pytest和接口自动化测试执行_190331 https://mubu.com/doc/1Pw-sCw-Qg
- APT_接口自动化测试方案解析_190421 https://mubu.com/doc/38LAXlnB-g
- APT_接口测试问题答疑与接口测试方法调用_190424 https://mubu.com/doc/1-tcr5M1rg
- APT_自动化测试实战总结和接口测试_190408 https://mubu.com/doc/2g7fdoKFGg
- APT_NSPAPI V2 接口测试_190410 https://mubu.com/doc/2OG-aOgfbg
- APT_使用git编写接口测试用例代码_10428 https://mubu.com/doc/1iB9O9NIGg
- APT_接口测试业务抽离_190430 https://mubu.com/doc/3AmpQABz0g
- APT_自动化接口测试无效数据检查字典类型断言_190508 https://mubu.com/doc/2cLmaCMcNg
- ATP_WebApi 自动化测试_190323https://mubu.com/doc/1dii_sEpIg
07. 数据验证
SQL查询
- 重点是思路
- 思路 = 分步思路 + 关联
- WHERE
- ORDER BY
- GROUP BY ... HAVING
- INNER (LEFT)JOIN ... ON
- 子查询
- 创建表、插入数据、删除表、删除数据、修改表、修改数据
备份恢复
- 写出 bat 脚本
- 备份:mysqldump
- 恢复:source
Fiddler抓包
- 抓包 HTTPS
- 抓包 手机
参考笔记
- APT_Niushop数据库分析1_190320 https://mubu.com/doc/1gu-Bfat6g
- APT_Niushop数据库分析2_190321 https://mubu.com/doc/3iIk73Yirg
- APT_数据库测试_计划会_190325 https://mubu.com/doc/2gR-OL75ig
- APT_数据库多表查询_181227 https://mubu.com/doc/2L-OaFzWIg
- APT_数据库查询应用_190221 https://mubu.com/doc/2LIGlptp0g
- APT_数据库的测试分析与执行2https://mubu.com/doc/22guKuDeOg
- APT_数据库的验证操作 https://mubu.com/doc/1SUYYIUt6g
- APT_数据库验证任务参考_190222 https://mubu.com/doc/TgE0QeFOi
- APT_数据库验证_表单和数据后台 https://mubu.com/doc/2bGoYD25mg
08. 缺陷定位
前端后端
- 前端:客户端
- 浏览器:只要在浏览器看到的部分,全部是前端
- 后台也是前端
- APP:手机的部分,原生APP ,也包括 H5,都是前端
- 桌面版程序
- 浏览器:只要在浏览器看到的部分,全部是前端
- 后端
- 应用服务器
- 日志问题
- Java 问题
- PHP 问题
- C#/ .NET (dot net)
- 数据库服务器:数据库问题
- 应用服务器
- 区分:
- 抓包区分
- 请求错误:前端
- 响应错误:后端
- 分析日志
- 分析程序产生的日志
- 日志包含了请求和响应
- 抓包区分
业务逻辑
- 关联
- 前提
- 效果
日志分析
- 看请求
- 看SQL
- 找ERROR(例如Java 的:exception)
- ERROR
- ERR
- EXCEPTION
参考笔记
- APT_接口测试缺陷分析_以及Jenkins使用_190411 https://mubu.com/doc/19gNpOGSLg
- APT_接口缺陷提交以及代码管理_190425 https://mubu.com/doc/1O-WuVMnDg
09. 求职面试
面试思路
- 准备主要介绍什么
- 分别在什么阶段介绍
- 自我介绍
- 职责描述
- 技术能力
询问职责
- 弄明白面试的职位的需求:
- 对方想招什么样人的
- 对方想要解决什么问题
- 让自己合适
转移难题
- 好的办法:借此问对方在项目中的使用情况
- 进行反问:提供几个你认为是类似的,让对方选
针对发问
- 人事:
- 我们测试团队规模怎么样
- 我们公司人员流动性大么
- 我们公司社保公积金按什么基数交,公积金的比例
- 我们公司怎么扣税
- 公司对测试岗位的职业规划是怎么安排的,级别,调薪
- 技术
- 开发
- 目前开发和测试是一种什么工作流程
- 先开发好,集中测
- 还是互联网的敏捷,开发一点就测试一点
- 会不会测试没有时间执行测试,开发延误
- 目前开发和测试是一种什么工作流程
- 测试主管
- 团队的测试有多少个人,开发有多少个人
- 我们现在主要测试什么项目?后端?数据库?接口?APP的?WEB的?
- 有没有使用一些编程,工具,源代码管理,Jenkins 这些?
- 开发
- 老板
- 制造一些机会,听老板吹牛
- 公司用人看重哪些方面
参考笔记
- APT_接口自动化测试总结_差异分析_190616 https://mubu.com/doc/2AB1EyI5kg
- APT_面试高级测试工程师_190602 https://mubu.com/doc/287QZ4ZS4g
- APT_简历设计模型与思路_1904016https://mubu.com/doc/1ggBugA_ng
- APT_简历设计 https://mubu.com/doc/3goq6Hgbeg
- **APT_面试题目 **https://mubu.com/doc/25tbNl1hTg
10. Selenium
参考笔记
- APT_Selenium 入门 https://mubu.com/doc/QfgNq1mqi
- APT_Selenium 基本使用 https://mubu.com/doc/1gFkmdhVkg
- APT_Selenium 进阶使用 https://mubu.com/doc/31mDk8l8-g
- APT_WEB自动化测试环境部署与工具使用_181230 https://mubu.com/doc/1VzzDkXkug
- APT_WEB自动化测试环境部署与工具使用2_181231 https://mubu.com/doc/1LXci5PSlg
- APT_自动化测试技术要点梳理_190217 https://mubu.com/doc/2HXARwwGog
- APT_自动化测试_数据驱动_190223 https://mubu.com/doc/2f31SzMrig
- APT_自动化测试代码初步评审 https://mubu.com/doc/TOS5RH7xi
- APT_hat自动化测试项目实战1_190403 https://mubu.com/doc/2Gkc-1ugLg
- APT_hat自动化测试项目实战2_190404 https://mubu.com/doc/1VE3miDKXg
- APT_自动化测试代码评审_190429 https://mubu.com/doc/BdAoH8ERi
- APT_自动化测试总结_190505 https://mubu.com/doc/PttYFo7Qi
- APT_UI自动化测试开发方案 https://mubu.com/doc/SnXYp-xRi
- APT_业务组织与底层驱动封装_笔记 https://mubu.com/doc/3s_MVxgYXg
- APT_业务组织与底层驱动封装_笔记_190113 https://mubu.com/doc/Qk2xux33i
- APT_自动化测试的方法论与细节_190126 https://mubu.com/doc/LIkvsosbi
- APT_自动化测试项目实战_190302 https://mubu.com/doc/2u72MtTPhg
- APT_hat自动化测试方案_190317 https://mubu.com/doc/152PWDYBig
- APT_hat 自动化测试方案(早期)https://mubu.com/doc/3Atd8b41Xg
11. Linux
参考笔记
- APT_Linux 基础_181212 https://mubu.com/doc/3lZxgotGlg
- APT_Linux 命令使用 https://mubu.com/doc/1ABWqa3srg
- APT_Linux Xshell 使用命令行 https://mubu.com/doc/QhCYPlHxi
- APT_Linux 命令详解_1214 https://mubu.com/doc/1EZzL8Udni
- APT_Linux 系统配置 https://mubu.com/doc/2GfGh3NFfg
- APT_Linux 部署 Web 服务 https://mubu.com/doc/3Q7MXE3kYg
- APT_Linux_命令与知识体系梳理_190520 https://mubu.com/doc/-XM7LtEDi
- APT_Linux 搭建部署 Web 环境_1213 https://mubu.com/doc/21lnkdk8ei
12. MySQL
参考笔记
- APT_MySQL 基本查询 https://mubu.com/doc/38AhNkfvkg
- APT_MySQL数据库查询_190220 https://mubu.com/doc/1FdutdP9lg
- APT_MySQL 数据查询验证 https://mubu.com/doc/2PAoIb8-0g
- APT_数据库查询SQL_190710 https://mubu.com/doc/2bEQceBmpg
- APT_数据库的查询_190319 https://mubu.com/doc/28s5NKKkZg
- APT_基础认知与数据库_190219 https://mubu.com/doc/G42x6h2_i
- APT_数据库高级查询_190222 https://mubu.com/doc/382dRoG_ag
- APT_数据库基础_1222 https://mubu.com/doc/2FcDdypydi
13. Python
参考笔记
- APT_PyCharm 使用 https://mubu.com/doc/KWhtcDlri
- APT_Python 的面向对象编程 https://mubu.com/doc/28TvbFqP4g
- APT_Python 类的高级使用 https://mubu.com/doc/1t-YTfBbLg
- APT_面向对象的编程_类的处理 https://mubu.com/doc/V_ISVI2Zi
- APT_PyCharm 集成 SVN https://mubu.com/doc/1I-x1UCKyg