国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Unittest】Requests實(shí)現(xiàn)小程序項(xiàng)目接口測(cè)試

這篇具有很好參考價(jià)值的文章主要介紹了【Unittest】Requests實(shí)現(xiàn)小程序項(xiàng)目接口測(cè)試。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、搭建接口測(cè)試框架

目錄結(jié)構(gòu)如下。

【Unittest】Requests實(shí)現(xiàn)小程序項(xiàng)目接口測(cè)試,unittest,python,接口測(cè)試,自動(dòng)化測(cè)試

二、初始化日志

在utils.py文件中編寫(xiě)如下如下代碼,初始化日志。

# 導(dǎo)入app.py全局變量文件
import app
import logging
from logging import handlers

# 定義初始化日志的函數(shù)
def init_logging():
    # 創(chuàng)建日志器
    logger = logging.getLogger()
    # 設(shè)置日志等級(jí)
    logger.setLevel(logging.INFO)
    # 創(chuàng)建控制臺(tái)處理器
    sh = logging.StreamHandler()
    # 創(chuàng)建文件處理器
    fh = logging.handlers.TimedRotatingFileHandler(app.BASE_DIR+"/log/mimi.log",
                                                   when='M',
                                                   interval=5,
                                                   backupCount=3,
                                                   encoding='utf-8')
    # 定義日志的格式(格式化器)
    fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s"
    formatter = logging.Formatter(fmt)
    # 將格式化器添加到處理器
    sh.setFormatter(formatter)
    fh.setFormatter(formatter)
    # 將處理器添加到日志器當(dāng)中
    logger.addHandler(sh)
    logger.addHandler(fh)

在api下的init.py文件中編寫(xiě)如下代碼,進(jìn)行實(shí)際的初始化日志。

# 導(dǎo)入utils.py中編寫(xiě)的初始化日志的函數(shù)和logging模塊
# 然后調(diào)用初始化日志的函數(shù)
# 最后測(cè)試日志是不是能夠打印

# 導(dǎo)包
import utils
import logging

# 初始化日志
utils.init_logging()

# 使用logging模塊打印日志
logging.info("Test初始化日志后能不能打印日志")

三、定義全局變量

在app.py文件中編寫(xiě)如下代碼,定義全局變量。

# 1 測(cè)試項(xiàng)目接口的代碼項(xiàng)目地址
import os

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
print(BASE_DIR)
# 2 測(cè)試項(xiàng)目服務(wù)器的根URL
BASE_URL = "http://www.nidexiangmu.com:13140"
# 3 Token(令牌,維持登錄狀態(tài))
TOKEN = "bd8f3599604107c0d7eebe1ffe15d84a"
# 4 HEADERS(請(qǐng)求一般都是固定的)
HEADERS = {"Content-Type":"application/json", "token": TOKEN}
# 5 Code(由微信小程序前端生成,用于發(fā)送給服務(wù)器,來(lái)獲取token)
CODE = "023tA6DW1eYZoY0g0JzW1bY5DW1tA6DK"

四、封裝接口

在api下創(chuàng)建ego_api.py項(xiàng)目,根據(jù)API文檔編寫(xiě)如下格式的代碼,封裝所有待測(cè)試接口。

# 導(dǎo)入requests模塊
import requests
import app
# 創(chuàng)建API接口類
class EgoApi:

    def __init__(self):
        # 定義輪播圖的url
        self.banner_url = app.BASE_URL + "/api/v1/banner/1"
        # 定義專題欄位的url
        self.theme_url = app.BASE_URL + "/api/v1/theme"
        # 最近新品的URL
        self.recent_product_url = app.BASE_URL + "/api/v1/product/recent"
        # 獲取商品分類url
        self.category_url = app.BASE_URL + "/api/v1/category/all"
        # 獲取商品分類下的某個(gè)商品
        self.by_category_url = app.BASE_URL + "/api/v1/product/by_category"
        # 獲取商品詳情
        self.product_detail_url = app.BASE_URL + "/api/v1/product"
        # 獲取用戶訂單列表
        self.order_list_url = app.BASE_URL + "/api/v1/order/by_user"
        # 創(chuàng)建訂單URL
        self.create_order_url = app.BASE_URL + "/api/v1/order"
        # 查看訂單詳情
        self.order_detail_url = app.BASE_URL + "/api/v1/order"
        # 獲取Token
        self.get_token_url = app.BASE_URL + "/api/v1/token/user"
        # 驗(yàn)證token的url
        self.verify_token_url = app.BASE_URL + "/api/v1/token/verify"
        # 獲取地址信息的URL
        self.get_address_url = app.BASE_URL + "/api/v1/address"
    # 輪播圖
    def get_banner(self):
        return requests.get(self.banner_url)

    # 專題欄位
    def theme(self, params):
        return requests.get(self.theme_url, params={"ids":params})

    # 最近新品
    def recent_product(self):
        return requests.get(self.recent_product_url)

    # 獲取商品分類
    def get_product_category(self):
        return requests.get(self.category_url)

    # 獲取商品分類下的某個(gè)商品
    def by_category(self, params):
        return requests.get(self.by_category_url, params={"id":params})

    # 獲取商品信息
    def get_product_detail(self, product_id):
        return requests.get(self.product_detail_url + "/" + str(product_id))

    # 獲取用戶訂單列表(登錄后的接口)
    def get_order_list(self, page):
        return requests.get(self.order_list_url, params={"page":page}, headers=app.HEADERS)

    # 創(chuàng)建訂單
    def create_order(self, jsondata):
        return requests.post(self.create_order_url, json=jsondata, headers=app.HEADERS)

    # 查看訂單
    def get_order_detail(self, order_id):
        return requests.get(self.order_detail_url + "/" + str(order_id), headers=app.HEADERS)

    # 獲取Token
    def get_token(self, code):
        return requests.post(self.get_token_url, json={"code": code})

    # Token驗(yàn)證接口
    def verify_token(self, token):
        return requests.post(self.verify_token_url, json={"token": token})

    # 獲取地址信息
    def get_address(self):
        return requests.get(self.get_address_url, headers=app.HEADERS)

五、編寫(xiě)測(cè)試用例

在script下創(chuàng)建test_ego.py文件,根據(jù)接口測(cè)試用例文檔編寫(xiě)測(cè)試代碼,以下代碼為正向測(cè)試用例示例。

import unittest
import logging
import app
from api.ego_api import EgoApi

class TestEgo(unittest.TestCase):

    def setUp(self):
        # 手動(dòng)設(shè)置token
        app.HEADERS["token"] = ""

    @classmethod
    def setUpClass(cls):
        cls.ego_api = EgoApi()

    def test01_get_banner_success(self):
        # 使用實(shí)例化的ego_api發(fā)送獲取輪播圖的接口請(qǐng)求
        response = self.ego_api.get_banner()
        # 打印響應(yīng)數(shù)據(jù)
        logging.info("正向用例獲取輪播圖的測(cè)試結(jié)果為:{}".format(response.json()))
        # 斷言結(jié)果
        self.assertEqual(200, response.status_code)
        self.assertEqual("首頁(yè)輪播圖", response.json().get("description"))

    def test02_get_theme_success(self):
        response = self.ego_api.theme("1,2,3")
        logging.info("正向用例獲取專題欄位的測(cè)試結(jié)果為:{}".format(response.json()))
        self.assertEqual(200, response.status_code)
        self.assertEqual("專題欄位一", response.json()[0].get("name"))

    def test03_get_recent_product(self):
        response = self.ego_api.recent_product()
        logging.info("測(cè)試獲取最近新品接口:{}".format(response.json()))
        self.assertEqual(200, response.status_code)
        self.assertEqual("芹菜 半斤", response.json([0].get("name")))

    def test04_get_product_category(self):
        response = self.ego_api.get_product_category()
        logging.info("測(cè)試獲取商品分類接口:{}".format(response.json()))
        self.assertEqual(200, response.status_code)
        self.assertEqual("果味", response.json([0].get("name")))

    # 獲取商品分類下的商品
    def test05_get_product(self):
        # 使用封裝的接口獲取商品分類下的商品
        response = self.ego_api.by_category(2)
        # 打印結(jié)果
        logging.info("獲取商品分類下的商品為:{}".format(response.json()))

        # 斷言
        self.assertEqual(200, response.status_code)
        self.assertEqual("梨花帶雨 3個(gè)", response.json()[0].get("name"))

    # 獲取商品詳情
    def test06_get_product_detail(self):
        # 使用封裝的接口獲取商品詳情
        response = self.ego_api.get_product_detail(2)
        # 打印結(jié)果
        logging.info("獲取商品商品詳情:{}".format(response.json()))

        # 斷言
        self.assertEqual(200, response.status_code)
        self.assertEqual("梨花帶雨 3個(gè)", response.json().get("name"))

六、生成測(cè)試報(bào)告

在run_suite.py文件中編寫(xiě)如下代碼,可生成測(cè)試報(bào)告。

# 導(dǎo)包
import unittest
import app
from script.test_ego import TestEgo
from lib.HTMLTestRunner import HTMLTestRunner
# 創(chuàng)建測(cè)試套件
suite = unittest.TestSuite()
# 將測(cè)試用例的代碼添加到測(cè)試套件中
suite.addTest(unittest.makeSuite(TestEgo))
# 定義測(cè)試報(bào)告的路徑和名稱
report_name = app.BASE_DIR + "/report/mini.html"
# 使用HTMLTestRunner運(yùn)行測(cè)試套件生成測(cè)試報(bào)告
with open(report_name, 'wb') as f:
    # 初始化HTMLTestRunner
    runner = HTMLTestRunner(f, verbosity=1, title="Ego微商", description="測(cè)試Ego微商的常見(jiàn)接口")
    # 使用實(shí)例化的runner運(yùn)行測(cè)試套件,并生成測(cè)試報(bào)告
    runner.run(suite)

七、運(yùn)行結(jié)果

1、日志結(jié)果如下:

【Unittest】Requests實(shí)現(xiàn)小程序項(xiàng)目接口測(cè)試,unittest,python,接口測(cè)試,自動(dòng)化測(cè)試

2、測(cè)試報(bào)告結(jié)果如下(生成的測(cè)試報(bào)告位于report文件夾下):

【Unittest】Requests實(shí)現(xiàn)小程序項(xiàng)目接口測(cè)試,unittest,python,接口測(cè)試,自動(dòng)化測(cè)試文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-708985.html

到了這里,關(guān)于【Unittest】Requests實(shí)現(xiàn)小程序項(xiàng)目接口測(cè)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【接口自動(dòng)化測(cè)試項(xiàng)目2.0】unittest與pytest無(wú)縫穿插對(duì)接,可以像postman一樣編寫(xiě)代碼

    【接口自動(dòng)化測(cè)試項(xiàng)目2.0】unittest與pytest無(wú)縫穿插對(duì)接,可以像postman一樣編寫(xiě)代碼

    ??專注于分享軟件測(cè)試干貨內(nèi)容,歡迎點(diǎn)贊 ?? 收藏 ?留言 ?? 如有錯(cuò)誤敬請(qǐng)指正! ??交流討論:歡迎加入我們一起學(xué)習(xí)! ??資源分享:耗時(shí)200+小時(shí)精選的「軟件測(cè)試」資料包 ?? 最困難的時(shí)候,也就是我們離成功不遠(yuǎn)的時(shí)候! 接口自動(dòng)化測(cè)試項(xiàng)目2.0 本框架主要是基于

    2024年02月03日
    瀏覽(48)
  • 接口測(cè)試 react+unittest+flask 接口自動(dòng)化測(cè)試平臺(tái)

    目錄 1 前言 2 框架 2-1 框架簡(jiǎn)介 2-2 框架介紹 2-3 框架結(jié)構(gòu) 3 平臺(tái) 3-1 平臺(tái)組件圖

    2024年02月16日
    瀏覽(18)
  • 一文揭秘利用python+unittest實(shí)現(xiàn)Webscoket協(xié)議接口測(cè)試_from websocket import create_connection

    一文揭秘利用python+unittest實(shí)現(xiàn)Webscoket協(xié)議接口測(cè)試_from websocket import create_connection

    先自我介紹一下,小編浙江大學(xué)畢業(yè),去過(guò)華為、字節(jié)跳動(dòng)等大廠,目前阿里P7 深知大多數(shù)程序員,想要提升技能,往往是自己摸索成長(zhǎng),但自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前! 因此收集整理了一份《2024年最新軟件測(cè)試全套學(xué)習(xí)資料》

    2024年04月23日
    瀏覽(19)
  • Python接口自動(dòng)化之unittest單元測(cè)試

    Python接口自動(dòng)化之unittest單元測(cè)試

    以下主要介紹unittest特性、運(yùn)行流程及實(shí)際案例。 一、單元測(cè)試三連問(wèn) 1、 什么是單元測(cè)試? ? 按照階段來(lái)分,一般就是單元測(cè)試,集成測(cè)試,系統(tǒng)測(cè)試,驗(yàn)收測(cè)試。單元測(cè)試是對(duì) 單個(gè)模塊 、 單個(gè)類 或者 單個(gè)函數(shù) 進(jìn)行測(cè)試。 將訪問(wèn)接口的過(guò)程封裝在函數(shù)里面; 接口測(cè)試就

    2024年02月07日
    瀏覽(22)
  • react+unittest+flask 接口自動(dòng)化測(cè)試平臺(tái)

    目錄 1 前言 2 框架 2-1 框架簡(jiǎn)介 2-2 框架介紹 2-3 框架結(jié)構(gòu) 3 平臺(tái) 3-1 平臺(tái)組件圖 1 新建用例 2 生成測(cè)試任務(wù) 3 執(zhí)行并查看測(cè)試報(bào)告

    2024年02月17日
    瀏覽(29)
  • python接口自動(dòng)化測(cè)試 —— unittest框架suite、runner詳細(xì)使用

    python接口自動(dòng)化測(cè)試 —— unittest框架suite、runner詳細(xì)使用

    測(cè)試套件,理解成測(cè)試用例集 一系列的測(cè)試用例,或測(cè)試套件,理解成測(cè)試用例的集合和測(cè)試套件的集合 當(dāng)運(yùn)行測(cè)試套件時(shí),則運(yùn)行里面添加的所有測(cè)試用例 測(cè)試運(yùn)行器 用于執(zhí)行和輸出結(jié)果的組件 使用測(cè)試套件時(shí),測(cè)試用例的執(zhí)行順序可以自定義,按照添加的順序執(zhí)行 有

    2024年03月16日
    瀏覽(28)
  • 如何編寫(xiě)接口自動(dòng)化框架系列之unittest測(cè)試框架的詳解(二)

    如何編寫(xiě)接口自動(dòng)化框架系列之unittest測(cè)試框架的詳解(二)

    在編寫(xiě)自動(dòng)化框架過(guò)程中 ,我們首先想到的就是選擇一個(gè)合適的測(cè)試框架 ,目前常用的測(cè)試框架有unittest和pytest , unittest比較簡(jiǎn)單,適合入門(mén)著學(xué)習(xí) ;而pytest比較強(qiáng)大,適合后期進(jìn)階 。本文主要介紹的就是unittest框架 。接下來(lái) ,我們從以下三個(gè)問(wèn)題開(kāi)始說(shuō)明: unittest是什么

    2024年02月07日
    瀏覽(30)
  • po+selenium+unittest自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)

    po+selenium+unittest自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)

    1、新建一個(gè)包名:common(用于存放基本函數(shù)封裝) (1)在common包下新建一個(gè)base.py文件,作用:頁(yè)面操作封裝。base.py文件代碼如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

    2024年01月17日
    瀏覽(24)
  • 震驚!強(qiáng)大的接口自動(dòng)化測(cè)試框架2.0,unittest與pytest無(wú)縫穿插對(duì)接,可以像postman一樣編寫(xiě)代碼

    震驚!強(qiáng)大的接口自動(dòng)化測(cè)試框架2.0,unittest與pytest無(wú)縫穿插對(duì)接,可以像postman一樣編寫(xiě)代碼

    接口自動(dòng)化測(cè)試項(xiàng)目2.0 本框架主要是基于 Python + unittest + ddt + HTMLTestRunner + log + excel + mysql + 企業(yè)微信通知 + Jenkins 實(shí)現(xiàn)的接口自動(dòng)化框架。 項(xiàng)目參與者: 陳勇志 技術(shù)支持郵箱: 262667641@qq.com 個(gè)人微信: Testing_player 個(gè)人博客地址: https://home.cnblogs.com/u/Nephalem-262667641 微信公眾號(hào):測(cè)

    2024年02月12日
    瀏覽(29)
  • Unittest單元測(cè)試之unittest用例執(zhí)行順序

    Unittest單元測(cè)試之unittest用例執(zhí)行順序

    當(dāng)在一個(gè)測(cè)試類或多個(gè)測(cè)試模塊下,用例數(shù)量較多時(shí),unittest在執(zhí)行用例 (test_xxx)時(shí),并不是按從上到下的順序執(zhí)行,有特定的順序。 unittest框架默認(rèn)根據(jù)ACSII碼的順序加載測(cè)試用例,數(shù)字與字母的順序?yàn)椋?0~9,A~Z,a~z。 對(duì)于類來(lái)說(shuō),class TestAxx 會(huì)優(yōu)先于class TestBxx被執(zhí)行。

    2024年02月13日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包