最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python接口自動(dòng)化?之用例讀取方法總結(jié)

 更新時(shí)間:2022年06月16日 14:54:20   作者:??行者AI????  
這篇文章主要介紹了Python接口自動(dòng)化?之用例讀取方法總結(jié),在軟件測(cè)試中,為項(xiàng)目編寫接口自動(dòng)化用例已成為測(cè)試人員常駐的測(cè)試工作。本文以python為例,基于筆者曾使用過的三種用例數(shù)據(jù)讀取方法:xlrd、pandas、yaml,下面簡(jiǎn)要地介紹下它們的使用方法及簡(jiǎn)單分析

前言:

在軟件測(cè)試中,為項(xiàng)目編寫接口自動(dòng)化用例已成為測(cè)試人員常駐的測(cè)試工作。本文以python為例,基于筆者曾使用過的三種用例數(shù)據(jù)讀取方法:xlrd、pandas、yaml,下面簡(jiǎn)要地介紹下它們的使用方法及簡(jiǎn)單分析。

1. Python第三方庫xlrd

xlrd模塊可用于讀取excel文檔,是一種最常用的用例讀取方式,使用方式如下。以演示慣例---注冊(cè)接口為例,首先新建一個(gè)excel文檔,文檔中自定義接口用例參數(shù):

(以下data均為隨機(jī)生成,不涉及任何系統(tǒng))

python已安裝第三方庫后,開始讀取接口用例。本次為了方便演示,方法未進(jìn)行封裝。

xlrd代碼演示

以下為實(shí)例代碼:

import unittest
import xlrd
# 打開接口用例excel文件
excel_data = xlrd.open_workbook('register.xlsx')
# 讀取excel文件中存放用例的sheet頁,命名無要求
sheet = excel_data.sheet_by_name('register')
print(sheet.nrows)
print(sheet.row_values(1))
# 將讀取到的用例全部追加到data列表中
data = []
for i in range(1, sheet.nrows):
    data.append(sheet.row_values(i))
    print(data)
class register(unittest.TestCase):
    def test_register_check(self):
        pass

執(zhí)行py文件后,打印讀取data列表,成功讀取出excel文件中用例數(shù)據(jù):

但是上面的方法會(huì)把整個(gè)excel文件的用例全部存放到一個(gè)列表中,數(shù)據(jù)取用不太方便?,F(xiàn)在我們對(duì)數(shù)據(jù)進(jìn)行拆分,結(jié)合ddt數(shù)據(jù)驅(qū)動(dòng)方式,進(jìn)行數(shù)據(jù)讀取:

import unittest
import xlrd
from ddt import ddt,data,unpack
excel_data = xlrd.open_workbook('register.xlsx')
sheet = excel_data.sheet_by_name('register')
# print(sheet.nrows)
# print(sheet.row_values(1))
data_ = []
for i in range(1, sheet.nrows):
    data_.append(sheet.row_values(i))
print(data_)
# 引入的裝飾器@ddt;導(dǎo)入數(shù)據(jù)的@data;拆分?jǐn)?shù)據(jù)的@unpack
@ddt
class register(unittest.TestCase):
    @data(*data_)
    @unpack
    def test_register(self, title, data, check):
        print(data)
if __name__ == '__main__':
    unittest.main()

通過ddt中的data及unpack方法,excel文件中的每條數(shù)據(jù)都是一個(gè)單獨(dú)的列表,更便于提供給接口測(cè)試用例使用:

xlrd模塊在接口自動(dòng)化中的使用頻率非常高,調(diào)用方法也非常簡(jiǎn)單。讀取到excel測(cè)試用例后,還可以使用裝飾器DDT進(jìn)行數(shù)據(jù)拆分,使數(shù)據(jù)更加簡(jiǎn)化。

xlrd適用于項(xiàng)目接口數(shù)據(jù)較少、接口字段不經(jīng)常調(diào)整的項(xiàng)目。如果項(xiàng)目中,接口數(shù)量非常多,在編寫接口用例時(shí),存放用例的excel文件內(nèi)容會(huì)不斷擴(kuò)充。測(cè)試用例的易讀性和維護(hù)性都會(huì)成為后期測(cè)試工作的難題,影響測(cè)試效率。

2. Python第三方庫pandas

pandas是python的一個(gè)數(shù)據(jù)分析包,可幫助使用者處理大型數(shù)據(jù)集。使用pandas中的DataFrame(二維的表格型數(shù)據(jù)結(jié)構(gòu))方法,即可獲取到excel表格中的測(cè)試數(shù)據(jù)。pandas與xrld一樣,都可讀取excel文件。

首先創(chuàng)建一個(gè)excel文件,存放測(cè)試數(shù)據(jù):

pandas代碼演示

實(shí)例代碼:

# 從excel文件中讀取用例,name參數(shù)為sheet名稱
def read_excel_data(inputdir,name):
     dataframe = pandas.DataFrame(columns=['接口名','用例','請(qǐng)求地址','請(qǐng)求體','斷言','協(xié)議','請(qǐng)求方式'])	# 傳入?yún)?shù)就是excel文件中的列名
     try:
         datafile = pandas.read_excel(inputdir,sheet_name=name)
         dataframe = dataframe.append(datafile, ignore_index=True, sort=True)
     except:
         print("Warning:excel文件打開異常,請(qǐng)重試!")
     To_list = dataframe.to_dict(orient='records')	# 參數(shù)='records'時(shí),轉(zhuǎn)化后是 list形式
     return To_list

from common.data import read_excel_data
import pytest
def getdata(path):
    getdata = read_excel_data(path, '編輯xx')
    print(getdata)
path = r'..\common\接口用例文檔.xlsx'	# excel文件的路徑,按實(shí)際項(xiàng)目結(jié)構(gòu)指明
getdata(path)

調(diào)用封裝好的方法,成功讀取到excel文件中的全部用例數(shù)據(jù):

該方法與xlrd類似,也是通過讀取二維表格中數(shù)據(jù)的方式,獲取到我們所需接口用例。

通過xlrd等方法讀取excel文件中的測(cè)試用例,是接口測(cè)試中比較主流的數(shù)據(jù)讀取方式。但是通過上面的案例展示可以發(fā)現(xiàn),如果excel文件中的數(shù)據(jù)越來越多,后期測(cè)試的維護(hù)成本是比較高的,同時(shí)表格格式在大篇幅數(shù)據(jù)中,也不方便閱讀。這也是此類方法的一個(gè)弊端。

3. Python第三方庫yaml

yaml是一種用來寫配置文件的序列化語言,文件格式輸出可以是列表、字典,也支持嵌套。層級(jí)關(guān)系用空格區(qū)分,但不支持tab縮進(jìn)。

破折號(hào)和空格( “ - ” ):列表格式

# 以下數(shù)據(jù)會(huì)以list形式被讀取
- testapi
- url
- get

常見的yaml格式:

冒號(hào)和空格( “ :” ) :字典格式

# 以下數(shù)據(jù)會(huì)以dict形式被讀取
name: A
age: 1
spouse:
    name: B
    age: 2
slave:
 - name: C  # - 表示為列表
   age: 3
 - name1: D
   age1: 4

yaml代碼演示

讀取yaml文件中的dict數(shù)據(jù),代碼如下:

import os
import yaml
class LoadTestData:
    # 設(shè)置路徑,獲取yaml文件數(shù)據(jù)
    def load_data(self, file_name):
        yaml_path = os.path.join(os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),                                          'test_file'), file_name)
        yaml_data = yaml.load(open(yaml_path), Loader=yaml.FullLoader)
        # print(yaml_data)
        return yaml_data
def get_yaml_data(api_file, api_name):
    '''
    獲取yaml中 api_name的數(shù)據(jù)
    :param api_file:  api文件位置
    :param api_name:  api文件名稱
    :return: 文件數(shù)據(jù)
    '''
    data = LoadTestData().load_data(api_file)[api_name]
    print(data)
    return data
if __name__ == '__main__':
    file_name = 'api_data.yaml'
    api_name = 'test'
    # LoadTestData().load_data(file_name)
    get_yaml_data(file_name,api_name )
    print('讀取成功')

請(qǐng)注意yaml.load在調(diào)用時(shí),可能會(huì)因?yàn)閥aml版本較高而提示異常。解決方法:指定loader = yaml.FullLoader可解決異常。

根據(jù)上面yaml的實(shí)際運(yùn)用可以發(fā)現(xiàn),相比excel表格存放的數(shù)據(jù),yaml可讀性更好,而且python本身也支持新建yaml文件,與腳本語言的交互性更佳。對(duì)于不同的測(cè)試模塊,也可以新建不同的yaml文件,實(shí)現(xiàn)了功能模塊之間的測(cè)試數(shù)據(jù)隔離。

總結(jié)

測(cè)試中,不管是以excel表格存放數(shù)據(jù)還是yaml文件存放數(shù)據(jù),都能做到快速集成組裝測(cè)試數(shù)據(jù)。但excel表格存放數(shù)據(jù)過大時(shí),有可讀性降低及腳本執(zhí)行時(shí)間較長等問題。yaml擁有簡(jiǎn)潔、與python交互性高,可以把功能模板的測(cè)試數(shù)據(jù)相互隔離等優(yōu)點(diǎn)。但也需要對(duì)yaml的寫法規(guī)范有一些了解,才能正確使用。

到此這篇關(guān)于Python接口自動(dòng)化 之用例讀取方法總結(jié)的文章就介紹到這了,更多相關(guān)Python 用例讀取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python的tkinter、socket庫開發(fā)tcp的客戶端和服務(wù)端詳解

    python的tkinter、socket庫開發(fā)tcp的客戶端和服務(wù)端詳解

    本文介紹了TCP通訊流程和開發(fā)步驟,包括客戶端和服務(wù)端的實(shí)現(xiàn),客戶端使用Python的tkinter庫實(shí)現(xiàn)圖形化界面,服務(wù)端使用socket庫監(jiān)聽連接并處理消息,文章還提供了客戶端和服務(wù)端的代碼示例
    2025-01-01
  • python 根據(jù)列表批量下載網(wǎng)易云音樂的免費(fèi)音樂

    python 根據(jù)列表批量下載網(wǎng)易云音樂的免費(fèi)音樂

    這篇文章主要介紹了python 根據(jù)列表下載網(wǎng)易云音樂的免費(fèi)音樂,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-12-12
  • pycharm+PyQt5+python最新開發(fā)環(huán)境配置(踩坑)

    pycharm+PyQt5+python最新開發(fā)環(huán)境配置(踩坑)

    這篇文章主要介紹了pycharm+PyQt5+python最新開發(fā)環(huán)境配置(踩坑),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • python3代碼輸出嵌套式對(duì)象實(shí)例詳解

    python3代碼輸出嵌套式對(duì)象實(shí)例詳解

    在本篇文章里小編給大家整理了關(guān)于python3代碼輸出嵌套式對(duì)象實(shí)例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • Python可視化模塊altair的使用詳解

    Python可視化模塊altair的使用詳解

    Altair被稱為是統(tǒng)計(jì)可視化庫,因?yàn)樗梢酝ㄟ^分類匯總、數(shù)據(jù)變換、數(shù)據(jù)交互、圖形復(fù)合等。本文和大家聊一下Python當(dāng)中的altair可視化模塊,并且通過調(diào)用該模塊來繪制一些常見的圖表,感興趣的可以了解一下
    2022-07-07
  • python 下劃線的多種應(yīng)用場(chǎng)景總結(jié)

    python 下劃線的多種應(yīng)用場(chǎng)景總結(jié)

    Python有很多地方使用下劃線,在不同場(chǎng)合下,有不同含義。本文總結(jié)Python語言編程中常用下劃線的地方,力圖一次搞懂下劃線的常見用法,感興趣的朋友快來一起看看吧
    2021-05-05
  • 基于Python+tkinter實(shí)現(xiàn)簡(jiǎn)易計(jì)算器桌面軟件

    基于Python+tkinter實(shí)現(xiàn)簡(jiǎn)易計(jì)算器桌面軟件

    tkinter是Python的標(biāo)準(zhǔn)GUI庫,對(duì)于初學(xué)者來說,它非常友好,因?yàn)樗峁┝舜罅康念A(yù)制部件,本文小編就來帶大家詳細(xì)一下如何利用tkinter制作一個(gè)簡(jiǎn)易計(jì)算器吧
    2023-09-09
  • Python numpy數(shù)組轉(zhuǎn)置與軸變換

    Python numpy數(shù)組轉(zhuǎn)置與軸變換

    這篇文章主要介紹了Python numpy數(shù)組轉(zhuǎn)置與軸變換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python實(shí)現(xiàn)dnspod自動(dòng)更新dns解析的方法

    python實(shí)現(xiàn)dnspod自動(dòng)更新dns解析的方法

    這篇文章主要介紹了python實(shí)現(xiàn)的dnspod自動(dòng)更新dns解析的方法,需要的朋友可以參考下
    2014-02-02
  • python中的位置參數(shù)和關(guān)鍵字參數(shù)詳解

    python中的位置參數(shù)和關(guān)鍵字參數(shù)詳解

    位置參數(shù)和關(guān)鍵字參數(shù)是 Python 中的兩種不同類型的函數(shù)參數(shù)傳遞方式,位置參數(shù)依賴于參數(shù)的位置順序,而關(guān)鍵字參數(shù)通過參數(shù)名傳遞,不受位置影響,本文通過代碼示例給大家詳細(xì)介紹了python中的位置參數(shù)和關(guān)鍵字參數(shù),需要的朋友可以參考下
    2023-12-12

最新評(píng)論

屏山县| 岳阳市| 浦江县| 明星| 通州区| 青龙| 海晏县| 延长县| 商都县| 南皮县| 丹凤县| 通州区| 遂宁市| 天峻县| 什邡市| 南召县| 盘山县| 和田市| 确山县| 乌海市| 天峻县| 肥东县| 日土县| 彭阳县| 丹阳市| 丹寨县| 北辰区| 武冈市| 尼玛县| 云阳县| 军事| 武平县| 日喀则市| 淳安县| 富平县| 屏边| 开阳县| 克拉玛依市| 乳山市| 朝阳县| 茂名市|