教你編寫自動化測試用例「python自動化測試用例編寫」

前言

編寫正常的測試用例,一般都是通過excel進行編寫的,當我們進行編寫自動化測試用例的時,也是通過功能用例進行編寫的,那麼有沒有方法直接通過python讀取我們的excel然後完成自動化測試用例編寫。

Python自動化測試用例編寫方法:requests通過excel讀取測試用例

整體思路

1.通過Excel編寫測試用例,整理測試數據;

2.通過Python讀取Excel數據;

3.將讀出來的數據進行放入到requests中進行請求並做對應斷言。

整體思路其實很簡單,就是通過python讀取Excel然後在導入我們的requests中進行做介面自動化。

Python自動化測試用例編寫方法:requests通過excel讀取測試用例

通過Excel編寫用例

安靜在網上找了一些開源的介面進行編寫到Excel中,由於介面比較簡單,就寫了用例標題、url地址、請求方法、請求參數、預期結果等操作。

Python自動化測試用例編寫方法:requests通過excel讀取測試用例

讀取Excel

在python讀取Excel的方法有很多,這裡安靜就介紹最常用的庫xlrd xlrd可以進行完成對Excel的讀取。xlrd屬於Python的第三方庫,需要重新安裝。

安裝:

pip install xlrd

通過上面的Excel通過Excel完成讀取操作。

import xlrd

# 將excel進行實例化

book = xlrd.open_workbook(‘E:web123.xlsx’)

# 通過下標方法讀取sheet值

sheet = book.sheet_by_index(0)

# 通過name值進行讀取sheet

# sheet = book.sheet_by_name(‘Sheet1’)

# 獲取列表的總數

nrows = sheet.nrows

# 循環讀取每行數據

for i in range(1, nrows):

# 通過每行進行讀取數據

# print(sheet.row_values(i))

# 將數據通過組合成dic+t格式

data = dict(zip(sheet.row_values(0), sheet.row_values(i)))

print(data)

安靜在上面簡單的介紹了讀取數據的方法,上述代碼中通過字典的形式獲取到了excel的全部數據內容。

PS:這裡通過字典的形式獲取為了下面使用時好取值。

Python自動化測試用例編寫方法:requests通過excel讀取測試用例

request請求用例

前面已經把用例需要用到的數據都已經存儲下來了,那麼接下來的就是需要進行發送請求。

這裡通過requests的方式進行發送請求。先將requests請求進行簡單的封裝。通過把請求方式、請求類型、請求參數放入到requests中。

def Requests_result(item):

# 封裝request請求,並讀取數據

response = requests.request(

method=item[‘method’],

url=item[‘url’],

data=json.loads(item[‘body’])

)

result = response.json()[‘reason’]

# 這裡返回實際結果是否和預期值一樣

return result == item[‘expect’]

Python自動化測試用例編寫方法:requests通過excel讀取測試用例

整體代碼

pytest

上面已經將各個部分的內容都簡單的做了介紹了,這裡就直接上整體代碼,這裡通過requests+pytest+excel進行完成的讀取excel數據完成測試用例。

import xlrd

import requests

import json

import pytest

def Read_Excel():

# 將excel進行實例化

book = xlrd.open_workbook(‘E:web123.xlsx’)

# 通過下標方法讀取sheet值

sheet = book.sheet_by_index(0)

# 循環讀取每行數據

return [dict(zip(sheet.row_values(0), sheet.row_values(row))) for row in range(1, sheet.nrows)]

class Test_01:

def Requests_result(self, item):

# 封裝請求

response = requests.request(

method=item[‘method’],

url=item[‘url’],

data=json.loads(item[‘body’])

)

result = response.json()[‘reason’]

print(result)

return result == item[‘expect’]

# 通過參數化的方式進行導入excel的數據

@pytest.mark.parametrize(‘item’, Read_Excel())

def test_01(self, item):

response_result = self.Requests_result(item)

# 斷言請求返回的結果是否為True

assert response_result == True

if __name__ == ‘__main__’:

pytest.main([‘-vs’])

通過執行發現,我們的requests已經通過excel來完成了測試讀取測試用例。並通過單元測試-pytest完成了判斷是否通過。

Python自動化測試用例編寫方法:requests通過excel讀取測試用例

unittest

上述方法是通過pytest來完成的,那麼unittest當然也可以完成。這裡通過requests+unittest+ddt+excel進行來完成讀取數據內容。

import xlrd

import requests

import json

import unittest

import ddt

def Read_Excel():

# 將excel進行實例化

book = xlrd.open_workbook(‘E:web123.xlsx’)

# 通過下標方法讀取sheet值

sheet = book.sheet_by_index(0)

# 循環讀取每行數據

return [dict(zip(sheet.row_values(0), sheet.row_values(row))) for row in range(1, sheet.nrows)]

@ddt.ddt

class Test_01(unittest.TestCase):

def Requests_result(self, item):

response = requests.request(

method=item[‘method’],

url=item[‘url’],

data=json.loads(item[‘body’])

)

result = response.json()[‘reason’]

return result

# 通過ddt進行讀取數據

@ddt.data(*Read_Excel())

def test_01(self, data):

response_result = self.Requests_result(data)

self.assertTrue(response_result)

if __name__ == ‘__main__’:

unittest.main()

執行發現,通過unittest的也成功的讀取了excel的數據以及完成了介面內容。

總結

這裡安靜簡單的介紹了如何通過python進行讀取excel的方法從而實現了介面自動化的類似操作,當然如何運用到公司項目中,這個要看根據公司的項目來做了。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/284412.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-22 15:07
下一篇 2024-12-22 15:07

相關推薦

發表回復

登錄後才能評論