數(shù)字驅(qū)動(dòng)
數(shù)據(jù)庫(kù)的更改進(jìn)而推動(dòng)自動(dòng)化技術(shù)功能測(cè)試的落實(shí),最后造成檢測(cè)結(jié)果的變化。簡(jiǎn)單來(lái)說(shuō)就是參數(shù)化設(shè)計(jì)的應(yīng)用。
檢測(cè)推動(dòng)在功能測(cè)試中的運(yùn)用情景:
測(cè)試流程的數(shù)字驅(qū)動(dòng);
測(cè)試報(bào)告的數(shù)字驅(qū)動(dòng);
配備的數(shù)字驅(qū)動(dòng);
1、pytest融合數(shù)字驅(qū)動(dòng)-yaml
完成讀yaml文件,先創(chuàng)建env.yml文件配備測(cè)試報(bào)告
工程項(xiàng)目目錄結(jié)構(gòu):
data文件目錄:儲(chǔ)放yaml文件
- dev:127.0.0.1 #dev:127.0.0.2 #prod:127.0.0.3
testcase目錄:存放測(cè)試用例文件
import pytest import yaml class TestYaml: pytest.mark.parametrize("env",yaml.safe_load(open("./env.yml"))) def test_yaml(self,env): if"test"in env: print("這是測(cè)試環(huán)境") #print(env) print("測(cè)試環(huán)境的ip是:",env["test"]) elif"dev"in env: print("這是開發(fā)文件") print("開發(fā)環(huán)境的ip是:",env["dev"]) #print(env)
結(jié)果示例:
2、pytest結(jié)合數(shù)據(jù)驅(qū)動(dòng)-excel
常用的讀取方式有:xlrd、xlwings、pandas、openpyxl
以讀excel文件,實(shí)現(xiàn)A+B=C并斷言為例~
工程目錄結(jié)構(gòu):
data目錄:存放excel數(shù)據(jù)文件
func目錄:存放被測(cè)函數(shù)文件
def my_add(x,y): result=x+y return result
testcase目錄:存放測(cè)試用例文件
import openpyxl import pytest from test_pytest.read_excel.func.operation import my_add def test_get_excel(): """ 解析excel數(shù)據(jù) :return:[[1,1,2],[3,6,9],[100,200,300]] """ book=openpyxl.load_workbook('../data/param.xlsx') sheet=book.active cells=sheet["A1":"C3"] print(cells) values=[] for row in sheet: data=[] for cell in row: data.append(cell.value) values.append(data) print(values) return values class TestWithExcel: pytest.mark.parametrize('x,y,expected',test_get_excel()) def test_add(self,x,y,expected): assert my_add(int(x),int(y))==int(expected)
3、pyetst結(jié)合數(shù)據(jù)驅(qū)動(dòng)-csv
csv:逗號(hào)文件,以逗號(hào)分隔的string文件
讀取csv數(shù)據(jù):
內(nèi)置函數(shù)open()
內(nèi)置模塊csv
方法:csv.reader(iterable)
參數(shù):iterable,文件或列表對(duì)象
返回:迭代器,遍歷迭代器,每次會(huì)返回一行數(shù)據(jù)
以讀csv文件,實(shí)現(xiàn)A+B=C并斷言為例~
工程目錄結(jié)構(gòu):
data目錄:存放csv數(shù)據(jù)文件
func目錄:存放被測(cè)函數(shù)文件
def my_add(x,y): result=x+y return result
testcase目錄:存放測(cè)試用例文件
import csv import pytest from test_pytest.read_csv.func.operation import my_add def test_get_csv(): """ 解析csv文件 :return: """ with open('../data/params.csv')as file: raw=csv.reader(file) data=[] for line in raw: data.append(line) print(data) return data class TestWithCsv: pytest.mark.parametrize('x,y,expected',test_get_csv()) def test_add(self,x,y,expected): assert my_add(int(x),int(y))==int(expected)
4、pytest結(jié)合數(shù)據(jù)驅(qū)動(dòng)-json
json:js對(duì)象,是一種輕量級(jí)的數(shù)據(jù)交換格式。
json結(jié)構(gòu):
對(duì)象{"key":value}
數(shù)組[value1,value2...]
查看json文件:
1.pycharm
2.txt記事本
讀取json文件:
內(nèi)置函數(shù)open()
內(nèi)置庫(kù)json
方法json.loads()json.dumps()
以讀json文件,實(shí)現(xiàn)A+B=C并斷言為例~
工程目錄結(jié)構(gòu):
data目錄:存放json數(shù)據(jù)文件
func目錄:存放被測(cè)函數(shù)文件
def my_add(x,y): result=x+y return result
testcase目錄:存放測(cè)試用例文件
import json import pytest from test_pytest.read_json.func.operation import my_add def test_get_json(): """ 解析json數(shù)據(jù) :return:[[1,1,2],[3,6,9],[100,200,300]] """ with open('../data/params.json','r')as file: data=json.loads(file.read()) print(list(data.values())) return list(data.values()) class TestWithJson: pytest.mark.parametrize('x,y,expected',test_get_json()) def test_add(self,x,y,expected): assert my_add(int(x),int(y))==int(expected)
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/129050.html
摘要:前端自動(dòng)化測(cè)試百度搜索功能實(shí)戰(zhàn)可以與結(jié)合生成測(cè)試報(bào)告。以網(wǎng)頁(yè)版本的百度為例,百度首頁(yè)呈現(xiàn)的功能新聞網(wǎng)頁(yè)貼吧知道音樂圖片視頻地圖等,我們以百度網(wǎng)頁(yè)的搜索功能為例,使用結(jié)合自動(dòng)化測(cè)試框架,完成一個(gè)搜索功能的測(cè)試。 ...
摘要:在測(cè)試行業(yè),如果利用作為腳本語(yǔ)言開發(fā)自動(dòng)化測(cè)試用例,可用的框架有等主流可供選擇,個(gè)人感覺較之和應(yīng)該算是現(xiàn)階段最靈活,功能最全面,擴(kuò)展最豐富的框架了。不知道各位在做自動(dòng)化的時(shí)候有沒有遇到過(guò)用例數(shù)過(guò)多,單機(jī)執(zhí)行效率不高的困擾。 在測(cè)試行業(yè),如果利用python作為腳本語(yǔ)言開發(fā)自動(dòng)化測(cè)試用例,可用...
小編寫這篇文章的主要目的,就是教給大家,如何使用Django+Pytest,并用Django+Pytest搭建在線自動(dòng)化測(cè)試平臺(tái),具體怎么做呢?下面給大家做一個(gè)詳細(xì)的解答。 一、測(cè)試平臺(tái): 解決分散用例執(zhí)行方式,提供統(tǒng)一測(cè)試用例執(zhí)行過(guò)程、用例管理、測(cè)試報(bào)告 主要是基于: fastapi+vue.js django+vue.js django 二、搭建過(guò)程 2.1使用django...
摘要:必然的,他們會(huì)拋棄標(biāo)準(zhǔn)庫(kù)中的,使用或者發(fā)明自己心儀的單元測(cè)試框架。究其原因,一些人會(huì)說(shuō)時(shí)間寫代碼都不夠,哪還有空寫單元測(cè)試。最后我的個(gè)人觀點(diǎn),單元測(cè)試其實(shí)還有一個(gè)非常重要的作用,就是替代函數(shù)文檔注釋。希望從今天起,你的代碼也都有單元測(cè)試。 單元測(cè)試是每種編程語(yǔ)言必學(xué)的課題,是保護(hù)開發(fā)者的強(qiáng)力護(hù)盾,每個(gè)程序員都在時(shí)間允許的情況下盡可能多的寫單元測(cè)試,今天我們不討論其必要性,只拋磚引玉聊一...
摘要:?jiǎn)卧獪y(cè)試框架作為的標(biāo)準(zhǔn)庫(kù),是其他單元測(cè)試框架的基礎(chǔ)??梢院秃团浜鲜褂镁帉憜卧獪y(cè)試。官網(wǎng)地址單元測(cè)試覆蓋率工具單元測(cè)試中還需要用到代碼覆蓋率工具。代碼覆蓋率統(tǒng)計(jì)工具用來(lái)發(fā)現(xiàn)沒有被測(cè)試覆蓋的代碼,完善單元測(cè)試的覆蓋率。 在應(yīng)用程序中,單元是具有一個(gè)或多個(gè)輸入和單個(gè)輸出的軟件中最小可測(cè)試部分。單元...
閱讀 1068·2023-01-14 11:38
閱讀 1064·2023-01-14 11:04
閱讀 906·2023-01-14 10:48
閱讀 2382·2023-01-14 10:34
閱讀 1150·2023-01-14 10:24
閱讀 1028·2023-01-14 10:18
閱讀 657·2023-01-14 10:09
閱讀 735·2023-01-14 10:02