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

接口测试开发总结_公众号封面首图_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

参考笔记

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259