HTTPRunner v3 入門(mén)&進(jìn)階&實(shí)戰(zhàn)(一)

目錄

  • 目標(biāo)
    • 結(jié)合應(yīng)用案例,掌握HTTPRu v3的使用方法
    • 掌握測(cè)試用例的錄制生成與編寫(xiě)
    • 啟發(fā)測(cè)試框架開(kāi)發(fā)的思路
  • 項(xiàng)目背景
  • HTTPRunner基礎(chǔ)
  • HTTPRunner快速上手
  • 企業(yè)級(jí)應(yīng)用案例實(shí)戰(zhàn)
  • HTTPRunner的設(shè)計(jì)&實(shí)現(xiàn)

一、項(xiàng)目背景

為什么要開(kāi)發(fā)HTTPRunner

  • 工具多&雜
    • 接口測(cè)試工具
    • 性能測(cè)試工具
  • 學(xué)習(xí)成本高
  • 團(tuán)隊(duì)協(xié)作難
    • 風(fēng)格迥異
    • 整合困難
    • 交接困難
  • 維護(hù)成本高
    • 接口變更一個(gè),用例調(diào)整一堆
    • 接口測(cè)試腳本和性能測(cè)試腳本獨(dú)立維護(hù)
  • 普遍結(jié)局
    • 因投入產(chǎn)出比太低、維護(hù)跟不上而荒廢

HTTPRunner的核心目標(biāo)

  • 提高投入產(chǎn)出比(ROI)- 任務(wù)拆解

    • 少投入

      • 工具開(kāi)發(fā)&維護(hù)
        • 功能多
        • 質(zhì)量高
      • 學(xué)習(xí)使用成本
      • 編寫(xiě)&調(diào)試測(cè)試用例
      • 管理&維護(hù)測(cè)試用例
    • 高收益

      • 實(shí)現(xiàn)接口功能測(cè)試
      • 性能測(cè)試腳本復(fù)用
      • 兼具持續(xù)集成、線上監(jiān)控
      • 輔助手工測(cè)試:自定義生成特定業(yè)務(wù)數(shù)據(jù)
      • 快速定位問(wèn)題
  • 自動(dòng)化測(cè)試核心指標(biāo) - If you cannot measure it, you cannot improve it.

    • 測(cè)試用例數(shù):越多越好

      • 編寫(xiě)、調(diào)試效率
      • 管理、維護(hù)成本
      • 學(xué)習(xí)成本、上手難度
    • 執(zhí)行頻率:越快越好

      • 運(yùn)行便捷性

        • IDE
        • 命令行
        • 平臺(tái)
        • Jenkins/CI
      • 運(yùn)行效率

        • 分布式
        • 并行
      • 運(yùn)行成功率:越高越好

        • 框架穩(wěn)定性
        • 用例穩(wěn)定性
          • 數(shù)據(jù)依賴
          • hook機(jī)制
            • setup
            • teardown
  • 功能強(qiáng)大 & 簡(jiǎn)單易用

    • 功能全面,主流接口測(cè)試工具有的功能都得有
    • 使用流暢,用戶的心情十分重要
    • 運(yùn)行穩(wěn)定,測(cè)試工具必須要比被測(cè)系統(tǒng)更健壯

二、HTTPRunner基礎(chǔ)

HttpRunner是什么?

  • 面向HTTP(S)協(xié)議的通用測(cè)試框架
  • 只需編寫(xiě)維護(hù)一份 YAML/JSON/Pytest 腳本,即可實(shí)現(xiàn)自動(dòng)化測(cè)試、性能測(cè)試、線上監(jiān)控、持續(xù)集成等多種測(cè)試需求
  • 約定大于配置
  • 一站式接口測(cè)試解決方案,不只局限于HTTP(S)

HttpRunner v3新特性

  • 整體:概念更簡(jiǎn)單、功能更易用、生態(tài)更強(qiáng)大

  • pydantic類(lèi)型系統(tǒng)

  • 集成pytest

    • allure
    • fixture hooks
    • parameters
    • etc.可充分復(fù)用pytest的眾多生態(tài)插件
  • 生成pytest用例

    • jinjia2模板生成
    • black格式化為標(biāo)準(zhǔn)pep8
  • 內(nèi)置http web server

    • fastapi
    • 更加易于進(jìn)行二次開(kāi)發(fā)、平臺(tái)化
  • 測(cè)試用例編寫(xiě)語(yǔ)法提示

    • 鏈?zhǔn)秸{(diào)用,智能語(yǔ)法提示
      • rest-assured
    • PyCharm IDE錯(cuò)誤提示

HttpRunner核心概念

  • 測(cè)試用例概念
  • 測(cè)試用例組織結(jié)構(gòu)
    • image.png
    • 測(cè)試用例:有序的步驟集合
    • 測(cè)試用例集:無(wú)序的測(cè)試用例集合
    • 去除API、testsuite
    • 一切皆testcase

項(xiàng)目地址

環(huán)境準(zhǔn)備

  • Python環(huán)境

    • 支持 3.6/3.7/3.8
  • venv虛擬環(huán)境

    • python3 -m venv ~/.venv/hogwarts
    • source ~/.venv/hogwarts/bin/activate
  • 安裝HttpRunner

    • pip install httprunner
  • 環(huán)境驗(yàn)證

    • httprunner -V

    • httprunner -h

      • image.png
    • 子命令

      • hrun -h
      • har2case -h
      • hmake -h
  • 腳手架生成項(xiàng)目

    • httprunner startproject demo

    • 目錄結(jié)構(gòu)

      • image.png
    • 運(yùn)行demo

      • hrun demo /testcases/
        • image.png

三、 HttpRunner快速上手

  • 案例:幕布登錄場(chǎng)景

  • 腳本錄制

    • Charles / Fiddler /Chrome抓包生成HAR文件
  • 腳本生成

  • 執(zhí)行腳本

    • hrun xxx.yml
    • hrun xxx.json
    • 等價(jià)于
      • hmake xxx.yml
      • pytest xxx_test.py
  • 查看運(yùn)行結(jié)果 & 報(bào)告

    • 默認(rèn)安裝了pytest-html插件
    • hrun testcases/mubu.login.yml --html=reports/mubu.login.html
    • open reports/mubu.login.html
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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