婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Pytest接口自動化測試框架搭建模板

Pytest接口自動化測試框架搭建模板

熱門標簽:江蘇客服外呼系統廠家 清遠360地圖標注方法 平頂山外呼系統免費 西藏智能外呼系統五星服務 原裝電話機器人 400電話申請服務商選什么 工廠智能電話機器人 在哪里辦理400電話號碼 千陽自動外呼系統

auto_api_test

開發環境: Pycharm

開發語言版本: python3.7.8

測試框架: Pytest、測試報告: Allure

項目源碼Git地址

項目目錄結構

  • api – 模仿PO模式, 抽象出頁面類, 頁面類內包含頁面所包含所有接口, 并封裝成方法可供其他模塊直接調用
  • config – 配置文件目錄
  • data – 測試數據目錄
  • doc – 文檔存放目錄
  • log – 日志
  • report – 測試報告
  • scripts – 測試腳本存放目錄
  • tools – 工具類目錄
  • .gitignore – git忽略
  • app.py – 命令行啟動入口
  • pytest.ini – pytest測試框架配置文件
  • README.md – 開發說明文檔

代碼分析

pytest.ini

pytest框架的配置文件

[pytest]
addopts = --html=../report/report.html  # pytest-html報告插件配置 
;addopts = -s --alluredir report  # allure-pytest報告插件配置
testpaths = ./scripts  # 設置用例目錄識別名稱
python_files = test*_*.py  # 設置測試文件識別名稱
python_classes = Test*  # 設置測試類識別名稱
python_functions = test_*  # 設置測試方法識別名稱

app.py

# 基礎路由(方便在部署環境發生變化時切換全局基礎路由)
BASE_URL = "http://xxxx.com"
# 獲取腳本的絕對路徑(腳本在項目根目錄就可以理解為項目路徑)
ABS_PATH = os.path.abspath(__file__)
BASE_DIR = os.path.dirname(ABS_PATH)

# 命令行啟動此腳本時執行測試用例
pytest.main(["scripts/"])

/config/config.json

配置文件, 目前包含全局請求頭配置、類似全局變量的設置, 可通過tools內的工具函數進行讀寫
請求頭具體參數根據需要自行配置

{
 "headers": {
  "Host": "xxx.com",
  "Connection": "keep-alive",
  "Accept": "application/json, text/plain, */*",
  "Authorization": "xxxx",
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
  "Content-Type": "application/json;charset=UTF-8",
  "Origin": "http://xxx.com",
  "Referer": "http://xxx.com/",
  "Accept-Encoding": "gzip, deflate",
  "Accept-Language": "zh-CN,zh;q=0.9"
 }
}

/api/template_api.py

頁面類模板, 包含頁面接口的請求方法(增刪改查)封裝, 主要在此定義好接口和請求入參等內容

# 導包
import app
import json
from tools.config_info import get_header


class TemplateAPI:
  # xx添加接口
  api_add_url = app.BASE_URL + "/xxx/xxxx/add"
  # xx修改接口
  api_upd_url = app.BASE_URL + "/xxx/xxxx/upd"
  # xx查詢接口
  api_get_url = app.BASE_URL + "/xxx/xxxx/get"
  # xx刪除接口
  api_del_url = app.BASE_URL + "/xxx/xxxx/del/{id}"

  # xx添加接口函數實現
  def api_add(self, session, attr1, attr2):
    post_data = {
      "attr1": attr1,
      "attr2": attr2
    }
    return session.post(self.api_add_url, headers=get_header(), data=json.dumps(post_data))

  # xx修改接口函數實現
  def api_upd(self, session, attr1, attr2):
    put_data = {
      "attr1": attr1,
      "attr2": attr2
    }
    return session.put(self.api_upd_url, headers=get_header(), data=json.dumps(put_data))

  # xx查詢接口函數實現
  def api_get(self, session, attr1, attr2):
    params = {
      "attr1": attr1,
      "attr2": attr2
    }
    return session.get(self.api_get_url, headers=get_header(), params=params)

  # xx刪除接口函數實現
  def api_del(self, session, uid):
    return session.delete(self.api_del_url.format(id=uid), headers=get_header())

/scripts/test_template.py

測試類以Test開頭, 測試類和測試方法添加allure裝飾器

前置測試類方法 - 初始化requests請求庫的session對象, 創建對應的頁面對象

后置測試類方法 - 關閉session對象

前置測試方法 - 加休眠

測試方法中添加可選參數化裝飾器, 測試方法中通過頁面對象調用頁面接口請求方法, 傳入requests的session對象和方法需要的必要參數, 進行響應結果的處理和斷言等操作

日志器可通過引入工具調用

# 導包
import pytest
import requests
from time import sleep
from api.template_api import TemplateAPI
from tools.get_log import GetLog
from tools.read_file import read_json
import allure

# 獲取日志器
log = GetLog.get_log()


@allure.feature('測試類模板')
class TestTemplate:
  session = None

  # 初始化方法
  @classmethod
  def setup_class(cls):
    cls.session = requests.Session()  # 初始化session對象
    cls.template = TemplateAPI()

  # 結束方法
  @classmethod
  def teardown_class(cls):
    cls.session.close()

  @classmethod
  def setup(cls):
    sleep(1.5)

  # 測試方法
  @allure.story("測試方法模板-add")
  @pytest.mark.parametrize(("attr1", "attr2", "success", "expect"), read_json("test_add"))
  def test_add(self, attr1, attr2, success, expect):
    # 添加功能API調用
    response = self.template.api_add(self.session, attr1, attr2)
    # 打印日志
    log.info("添加功能-狀態碼為: {}".format(response.status_code))
    # 斷言狀態碼
    assert response.status_code == expect, "狀態碼斷言失敗"

  @allure.story("測試方法模板-upd")
  @pytest.mark.parametrize(("attr1", "attr2", "success", "expect"), read_json("test_upd"))
  def test_upd(self, attr1, attr2, success, expect):
    # 添加功能API調用
    response = self.template.api_upd(self.session, attr1, attr2)
    # 打印日志
    log.info("修改功能-狀態碼為: {}".format(response.status_code))
    # 斷言狀態碼
    assert response.status_code == expect, "狀態碼斷言失敗"

  @allure.story("測試方法模板-get")
  @pytest.mark.parametrize(("attr1", "attr2", "success", "expect"), read_json("test_get"))
  def test_get(self, attr1, attr2, success, expect):
    # 添加功能API調用
    response = self.template.api_get(self.session, attr1, attr2)
    # 打印日志
    log.info("查詢功能-狀態碼為: {}".format(response.status_code))
    # 斷言狀態碼
    assert response.status_code == expect, "狀態碼斷言失敗"

  @allure.story("測試方法模板-del")
  @pytest.mark.parametrize(("uid", "success", "expect"), read_json("test_del"))
  def test_del(self, uid, success, expect):
    # 添加功能API調用
    response = self.template.api_del(self.session, uid)
    # 打印日志
    log.info("刪除功能-狀態碼為: {}".format(response.status_code))
    # 斷言狀態碼
    assert response.status_code == expect, "狀態碼斷言失敗"

/data | /tools

測試數據和具體的操作工具類根據需要自定義

到此這篇關于Pytest接口自動化測試框架搭建模板的文章就介紹到這了,更多相關Pytest搭建模板內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python pytest進階之fixture詳解
  • 詳解Pytest測試用例的執行方法
  • Python pytest裝飾器總結(實例詳解)
  • python pytest進階之conftest.py詳解
  • pytest自動化測試fixture的作用域實例化順序及可用性

標簽:西安 安慶 錦州 白城 股票 天水 隨州 日照

巨人網絡通訊聲明:本文標題《Pytest接口自動化測試框架搭建模板》,本文關鍵詞  Pytest,接口,自動化,測試,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Pytest接口自動化測試框架搭建模板》相關的同類信息!
  • 本頁收集關于Pytest接口自動化測試框架搭建模板的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    玖玖九九国产精品| 99精品视频中文字幕| 狠狠色2019综合网| 欧美色综合影院| 国产拍欧美日韩视频二区| 午夜视频一区在线观看| 成人美女视频在线观看18| 日韩一区二区在线看| 一区二区三区中文在线| 高清不卡一二三区| 精品国产自在久精品国产| 香蕉久久一区二区不卡无毒影院| 国产91精品一区二区| 精品美女被调教视频大全网站| 亚洲激情一二三区| 91啦中文在线观看| 国产精品国产三级国产专播品爱网| 麻豆免费看一区二区三区| 欧美日韩高清在线播放| 亚洲狠狠丁香婷婷综合久久久| 国产999精品久久久久久绿帽| 精品国产一区二区国模嫣然| 日韩精品色哟哟| 欧美日韩亚洲高清一区二区| 亚洲精品久久嫩草网站秘色| 99re在线视频这里只有精品| 国产精品午夜久久| 国产成人免费网站| 欧美高清在线一区二区| 夫妻av一区二区| 中文字幕欧美激情一区| 高清在线成人网| 国产精品美女久久久久久| 成人av在线资源网站| 中文字幕欧美国产| 成人黄色电影在线| 亚洲精选视频在线| 欧美日韩和欧美的一区二区| 亚洲图片自拍偷拍| 欧美一区午夜视频在线观看| 免费视频最近日韩| 精品少妇一区二区三区视频免付费 | 色婷婷亚洲一区二区三区| 亚洲精品欧美二区三区中文字幕| 日本精品视频一区二区| 亚洲国产视频在线| 精品国产91乱码一区二区三区| 国产一区二三区| 亚洲视频免费看| 精品视频免费在线| 黄页网站大全一区二区| 国产喂奶挤奶一区二区三区| 国产成人精品免费网站| 樱桃国产成人精品视频| 日韩一级片网址| 国产成人在线免费观看| 亚洲已满18点击进入久久| 69堂成人精品免费视频| 国产福利精品一区| 亚洲久本草在线中文字幕| 欧美一区二区三区在线观看视频 | 国产人伦精品一区二区| 91丨国产丨九色丨pron| 日本va欧美va精品| 成人欧美一区二区三区在线播放| 在线播放91灌醉迷j高跟美女| 麻豆精品视频在线| 亚洲精品国产第一综合99久久| 欧美一级日韩不卡播放免费| 波多野结衣亚洲| 久久国产欧美日韩精品| 亚洲日本青草视频在线怡红院| 欧美一区欧美二区| av在线不卡免费看| 国产一区啦啦啦在线观看| 亚洲一卡二卡三卡四卡| 亚洲国产精品av| 欧美高清视频不卡网| gogogo免费视频观看亚洲一| 久久国产视频网| 偷窥国产亚洲免费视频| 亚洲视频资源在线| 国产三级一区二区| 日韩欧美123| 欧美日韩精品一区二区| 99久久99久久免费精品蜜臀| 久久69国产一区二区蜜臀| 亚洲一区二区三区影院| 亚洲视频一区在线观看| 亚洲国产精品v| 久久久久久久综合色一本| 91精品国产综合久久精品麻豆| 在线精品亚洲一区二区不卡| 韩日欧美一区二区三区| 久久不见久久见免费视频7| 午夜精品福利视频网站 | 色天天综合久久久久综合片| 国产a久久麻豆| 日日夜夜精品免费视频| 亚洲成人激情自拍| 亚洲一本大道在线| 亚洲福利视频三区| 亚洲国产综合在线| 亚洲国产精品久久人人爱| 亚洲黄色小视频| 一区二区三区加勒比av| 亚洲欧美在线观看| 亚洲欧美日韩中文字幕一区二区三区| 久久精品人人爽人人爽| 国产亚洲精品bt天堂精选| 精品久久久三级丝袜| 日韩一区二区电影在线| 日韩免费在线观看| 欧美精品一区二区三区很污很色的| 欧美一级视频精品观看| 日韩视频免费直播| 久久亚洲一区二区三区明星换脸| 久久伊99综合婷婷久久伊| 久久久久9999亚洲精品| 国产精品无圣光一区二区| 国产精品麻豆久久久| 国产精品久久久久aaaa樱花| 最新欧美精品一区二区三区| 亚洲精品久久久久久国产精华液| 亚洲美女电影在线| 五月综合激情网| 国产又黄又大久久| 99精品视频在线播放观看| 一本久久a久久免费精品不卡| 色狠狠桃花综合| 欧美精品丝袜久久久中文字幕| 日韩欧美一区在线观看| 欧美激情综合五月色丁香| 日韩一区在线看| 人妖欧美一区二区| 成人一二三区视频| 欧美婷婷六月丁香综合色| 久久综合国产精品| 国产精品素人一区二区| 亚洲www啪成人一区二区麻豆| 久久精品国产免费看久久精品| 国产呦萝稀缺另类资源| 99精品在线观看视频| 欧美一区二区三区白人| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品久久久久一区二区三区共| 亚洲伦理在线免费看| 久久精品国产久精国产| 91蜜桃传媒精品久久久一区二区| 91精品久久久久久蜜臀| 中文字幕免费不卡在线| 石原莉奈在线亚洲三区| 高清不卡一区二区在线| 91麻豆精品国产91久久久资源速度| 久久久亚洲精品一区二区三区 | 9i看片成人免费高清| 欧美日韩成人一区二区| 国产精品不卡在线观看| 久久精品国产99| 精品视频在线看| 国产精品美女久久久久aⅴ | 日本aⅴ亚洲精品中文乱码| 成人av免费在线观看| 欧美草草影院在线视频| 亚洲最新视频在线播放| 成人免费毛片a| 精品国产一区二区精华| 视频一区二区国产| 欧美亚洲另类激情小说| 国产精品不卡在线| 国产美女精品一区二区三区| 91麻豆精品国产91久久久久久| 亚洲区小说区图片区qvod| 国产白丝精品91爽爽久久| 精品日韩99亚洲| 麻豆91免费看| 欧美一区二区二区| 日韩精品电影一区亚洲| 欧美亚洲免费在线一区| 亚洲精品美腿丝袜| 一本色道久久综合狠狠躁的推荐 | 在线亚洲一区二区| 国产精品久久久久久久蜜臀| 国产综合色在线视频区| 精品国产91洋老外米糕| 精品一区二区免费看| 日韩欧美一二三| 久久综合综合久久综合| 日韩一区二区免费在线电影| 奇米四色…亚洲| 日韩免费观看高清完整版| 久久精品噜噜噜成人88aⅴ| 日韩欧美一级二级三级| 麻豆精品在线播放| 亚洲精品一区二区三区精华液| 麻豆免费精品视频| 国产日韩三级在线| yourporn久久国产精品| 国产精品久99| 欧美性大战xxxxx久久久|