接口測試系列② | 接口測試開發(fā)學(xué)習(xí)總結(jié)

接口測試開發(fā)總結(jié)_公眾號封面首圖_2019.07.25.png

[APT@1907]_接口測試開發(fā)學(xué)習(xí)總結(jié)_190724

00. 文檔介紹

  • 作者:立師兄Linty(劉挺立)(wx:13017716416)
  • 內(nèi)容:針對【1907期】接口測試開發(fā)學(xué)習(xí)的課程總結(jié)以及筆記記錄
  • 時間:2019.7.24
  • 鏈接:https://mubu.com/doc/2LIGlptp0g

01. 敏捷流程

項目迭代

  • 敏捷:agile,是一系列的項目的方法論,如何項目做好
  • 目前的敏捷工具
    • TAPD:騰訊的 https://www.tapd.cn/
      image
      • 項目:面向產(chǎn)品經(jīng)理
        • 需求
      • 迭代:面向項目經(jīng)理
        • 任務(wù)
        • 發(fā)布
        • 計劃:在迭代中創(chuàng)建測試計劃
          • 用例:在測試計劃中編寫(或者關(guān)聯(lián))測試用例
          • 缺陷:在測試計劃中執(zhí)行測試用例,失敗的轉(zhuǎn)為BUG
          • 報告:在測試計劃中生成詳細的測試報告
    • 云效:阿里的 https://www.aliyun.com/product/yunxiao
      image
    • JIRA:大公司最常用的,付費的,美國的
      • 定制能力很強
        • 根據(jù)公司的研發(fā)流程定制任何形式的軟件
        • 可以敏捷
        • 可以瀑布
        • 可以雙V
        • 可以螺旋
    • 禪道:青島的,前阿里員工開發(fā)的,免費的
      • 阿里的思路
        • 產(chǎn)品:產(chǎn)品經(jīng)理關(guān)注
          • 計劃
          • 發(fā)布
          • 需求
        • 項目(迭代)
          • 任務(wù)
          • 提測
        • 測試
          • 版本
          • 計劃
          • 用例
          • 缺陷
      • 偏基礎(chǔ),大而全。
      • 用的公司多
      • 文檔和視頻很全
    • Tuleap:https://www.tuleap.org/
    • Rally:https://www.ca.com/us/products/ca-agile-central.html

用戶故事

  • User Story,描述需求
    • 角色
    • 功能
    • 價值
    • 模板:作為一個xx用戶,我希望有xx功能,以便實現(xiàn)xx價值
  • Feature,特性
    • 一個特性可以有 多個 用戶故事

工件會議

  • Backlog
    • Product Backlog:產(chǎn)品的待開發(fā)清單
    • Sprint Backlog:迭代的待開發(fā)清單
  • kanban:任務(wù)進度
    • 未開始的
    • 進行中的
    • 已完成的
  • 燃燒圖,燃盡圖,burn down chart
  • 每日站會
    • 我昨天完成了什么
    • 我今天要做好什么
    • 我當(dāng)前遇到什么問題
  • 總結(jié)會:一個迭代完成以后,發(fā)布了版本,總結(jié)
    • 我做的好的地方
    • 我做的不好的地方
  • 計劃會:產(chǎn)品經(jīng)理 + 項目經(jīng)理
    • 上半場:講需求,我們問需求的細節(jié)(輸入的標(biāo)準(zhǔn),輸出的影響)
    • 下半場:分任務(wù),我們要估計時間

參考筆記

02. 持續(xù)集成

代碼管理

  • Git:分布式,只要 clone 了,就和服務(wù)器的倉庫一樣
    • clone
    • pull
    • commit
    • add
    • push
    • revert : 撤回
    • cleanup:清理
  • SVN:集中式,無論怎么做,服務(wù)器是全的,其他人都是一部分。連不上服務(wù)器,連你那一部分也看不到
    • check out
    • update
    • commit
    • add
    • push
    • revert : 撤回
    • cleanup:清理

持續(xù)測試

  • 敏捷模式的測試的常態(tài)
  • 持續(xù)
    • 新的功能
    • 修復(fù)缺陷
  • 接受變化
  • 小步快跑
  • 工具:Jenkins
    • 開發(fā):構(gòu)建版本,發(fā)布版本
      • 開發(fā)提交代碼
      • Jenkins 拉取代碼
      • 構(gòu)建代碼(一般是 maven,ant,gradle)
      • 發(fā)布 deploy:復(fù)制構(gòu)建好的 *.war 到 tomcat 或者 jetty 這樣服務(wù)器
        • 停止服務(wù)器
        • 備份老的 *.war 包
        • 備份配置文件
        • 備份數(shù)據(jù)庫腳本
        • 更新新的 *.war 包
        • 變更配置文件
        • 更新數(shù)據(jù)庫腳本
        • 啟動 服務(wù)器
    • 測試:冒煙測試,在線監(jiān)控,回歸測試(不多,手工居多)
      • 測試提交測試腳本
      • Jenkins 拉取腳本
      • Jenkins 執(zhí)行腳本
    • Jenkins 任務(wù)(工程、job、item)視角
      • 配置
        • 源代碼
        • 觸發(fā)構(gòu)建
          • 提交代碼就觸發(fā)構(gòu)建(插件支持)
          • 定時構(gòu)建 periodically
            image
            image
            • TZ=Asia/Shanghai:時區(qū)
            • 五個部分
              • H(0-29)/10:分鐘
                • H 是hash,任意一次開始之后算起
                • 如果沒有執(zhí)行,從 01 分開始
                • (0-29)/10 每個小時的 第 0分鐘 到 第29分鐘,每10分鐘執(zhí)行一次
              • 9-19:小時,每天的 9點到19點執(zhí)行,其他時間不執(zhí)行
                • day of month:每個月幾號執(zhí)行,* 是每一天
                • month:幾月執(zhí)行,* 是每個月
                • week:星期幾執(zhí)行,* 是星期1-7
          • 在別的指定的任務(wù)構(gòu)建完成后,開啟
            image
        • 構(gòu)建
        • 構(gòu)建之后
          • 發(fā)郵件
            image

參考筆記

03. 需求分析

實體分析

  • Entity 實體
    • 被測試的對象有哪些實體
    • 關(guān)聯(lián)的對象有哪些實體
  • 對號入座:無論是被測試的,還是關(guān)聯(lián)的,每一個實體對應(yīng)的
    • 增加
    • 刪除
    • 修改
    • 查看
    • 列表
  • 被測試的有多少個實體
  • 被測試的每個實體都有哪些對號入座
  • 都有哪些關(guān)聯(lián)的實體
  • 下一步:確定測試范圍

測試范圍

  • 界面
    • 展示:純看
    • 操作:交互:鼠標(biāo)、鍵盤、掃描
  • 功能(重點)
    • 前提
      • 關(guān)聯(lián)
      • 登錄
      • 權(quán)限
    • 描述
      • 合法輸入
      • 唯一屬性
  • 數(shù)據(jù)
    • 數(shù)據(jù)庫表對應(yīng)實體
    • 后臺數(shù)據(jù)查看
    • 抓包數(shù)據(jù):在客戶端的視角,看前端到后端的過程

參考筆記

04. 測試設(shè)計

測試場景

  • 有效
    • 合法輸入:輸入輸出(最基本的測試)
    • 復(fù)雜場景
      • 流程長,在中間的節(jié)點:放棄 或者 下一步
      • 使用關(guān)聯(lián)數(shù)據(jù)
      • 效果影響
  • 無效
    • 非法輸入
    • 合法輸入,業(yè)務(wù)不匹配
      • 使用了錯誤的關(guān)聯(lián):導(dǎo)致臟數(shù)據(jù):關(guān)聯(lián)
      • 前提不對:不登錄,或者沒權(quán)限:前提
      • 操作不存在(已更新的)數(shù)據(jù):效果

測試方法

  • 手工
    • 覆蓋哪些場景
    • 工具
    • 方法
    • 造數(shù)
  • 自動化
    • 覆蓋哪些場景
    • 工具
    • 方法
    • 造數(shù)
  • 自動化測試的覆蓋率
  • = 自動化測試用例數(shù) / 總用例數(shù)
  • = 自動化測試場景數(shù) / 總場景數(shù)
  • 考慮
    • 成本:人工時間,設(shè)備資源
    • 風(fēng)險:技術(shù)難度
  • 介紹測試方法的維度
    • 黑盒、白盒、灰盒
    • 靜態(tài)、動態(tài)
    • 單元、集成、冒煙、系統(tǒng)、驗收
    • 功能、性能、安全、兼容、易用、精準(zhǔn)
    • 手工、自動化(從測試的執(zhí)行角度)

參考筆記

05. 接口原理

接口場景

  • APP 調(diào)用自己的接口
    • 測試接口可以集中 “有效場景”
  • 使用第三方的接口
    • 測試接口要重點測“無效場景”

接口原理

  • 請求
  • 響應(yīng)
  • 接口的協(xié)議:HTTP
  • 還有
    • dubbo
    • kafka

參考筆記

06. 測試工具

Postman

  • 輸入
    • 方法
    • url
    • params( 處理 URL)
    • authorization
    • body
    • test(JavaScript)
  • 環(huán)境變量 Environment
  • 在線監(jiān)控

JMeter

  • JMeter 可以不會
  • 線程組
  • HTTP 請求
  • JSON 斷言
  • JSON 關(guān)聯(lián)
  • 查看結(jié)果樹
  • 請求頭管理器
  • 測試報告
  • CSV
  • 循環(huán)控制器

定制方案

  • base:一大堆方法、封裝的各種類
    • build_request()
    • build_logger()
    • read_csv()
    • read_txt()
    • read_json()
    • read_yaml()
    • BoxRequest
    • JsonHelper
    • Logger
  • page:
    • ApiPage
      • 寫業(yè)務(wù),要繼承ApiPage
      • _parse_http_resp()
      • _handle_params()
  • case:
    • ApiCase
      • 寫用例要繼承 ApiCase
      • 三個部分
        • 讀CSV
        • 準(zhǔn)備:pytest.fixture
          • init_logger()
          • init_request()
          • yield
          • wait()
        • 步驟:pytest.mark.parametrize, allure.tag, title, testcase, story, feature, serverity...level
          • 解析 CSV 輸入
          • 調(diào)用場景
          • 寫日志記錄 info()
          • 解析CSV 期望,場景結(jié)果:做斷言
            • assert_equal()
            • assert_int_equal()
            • assert_decimal_equal()
            • assert_in()
            • assert_json_equal()
            • assert_loop_equal()
            • 斷言失敗會截圖:
              • @allure.step
              • JSON
              • 請求
              • 響應(yīng)
          • 可能會有關(guān)聯(lián):場景結(jié)果作為下一個步驟的輸入
  • runner:bat 文件
    • pytest
    • allure generate
  • 規(guī)則
    • 測試用例
    • 文件名一致
      • py
      • csv
      • yaml
    • 方法名 = 文件名
    • 類名 = 大駱駝(文件名):駝峰命名法
    • 全局變量 可以用 _ 或者 __ 開頭
    • 方法:動詞 + 名詞 或者只有動詞
    • 代碼要格式化
      • code | reformat code
      • 注釋:寫完整
        • 寫注釋:作用理順寫代碼的思路

參考筆記

07. 數(shù)據(jù)驗證

SQL查詢

  • 重點是思路
  • 思路 = 分步思路 + 關(guān)聯(lián)
  • WHERE
  • ORDER BY
  • GROUP BY ... HAVING
  • INNER (LEFT)JOIN ... ON
  • 子查詢
  • 創(chuàng)建表、插入數(shù)據(jù)、刪除表、刪除數(shù)據(jù)、修改表、修改數(shù)據(jù)

備份恢復(fù)

  • 寫出 bat 腳本
  • 備份:mysqldump
  • 恢復(fù):source

Fiddler抓包

  • 抓包 HTTPS
  • 抓包 手機

參考筆記

08. 缺陷定位

前端后端

  • 前端:客戶端
    • 瀏覽器:只要在瀏覽器看到的部分,全部是前端
      • 后臺也是前端
    • APP:手機的部分,原生APP ,也包括 H5,都是前端
    • 桌面版程序
  • 后端
    • 應(yīng)用服務(wù)器
      • 日志問題
      • Java 問題
      • PHP 問題
      • C#/ .NET (dot net)
    • 數(shù)據(jù)庫服務(wù)器:數(shù)據(jù)庫問題
  • 區(qū)分:
    • 抓包區(qū)分
      • 請求錯誤:前端
      • 響應(yīng)錯誤:后端
    • 分析日志
      • 分析程序產(chǎn)生的日志
      • 日志包含了請求和響應(yīng)

業(yè)務(wù)邏輯

  • 關(guān)聯(lián)
  • 前提
  • 效果

日志分析

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

參考筆記

09. 求職面試

面試思路

  • 準(zhǔn)備主要介紹什么
  • 分別在什么階段介紹
    • 自我介紹
    • 職責(zé)描述
    • 技術(shù)能力

詢問職責(zé)

  • 弄明白面試的職位的需求:
    • 對方想招什么樣人的
    • 對方想要解決什么問題
  • 讓自己合適

轉(zhuǎn)移難題

  • 好的辦法:借此問對方在項目中的使用情況
  • 進行反問:提供幾個你認為是類似的,讓對方選

針對發(fā)問

  • 人事:
    • 我們測試團隊規(guī)模怎么樣
    • 我們公司人員流動性大么
    • 我們公司社保公積金按什么基數(shù)交,公積金的比例
    • 我們公司怎么扣稅
    • 公司對測試崗位的職業(yè)規(guī)劃是怎么安排的,級別,調(diào)薪
  • 技術(shù)
    • 開發(fā)
      • 目前開發(fā)和測試是一種什么工作流程
        • 先開發(fā)好,集中測
        • 還是互聯(lián)網(wǎng)的敏捷,開發(fā)一點就測試一點
      • 會不會測試沒有時間執(zhí)行測試,開發(fā)延誤
    • 測試主管
      • 團隊的測試有多少個人,開發(fā)有多少個人
      • 我們現(xiàn)在主要測試什么項目?后端?數(shù)據(jù)庫?接口?APP的?WEB的?
      • 有沒有使用一些編程,工具,源代碼管理,Jenkins 這些?
  • 老板
    • 制造一些機會,聽老板吹牛
    • 公司用人看重哪些方面

參考筆記

10. Selenium

參考筆記

11. Linux

參考筆記

12. MySQL

參考筆記

13. Python

參考筆記

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容