97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

網(wǎng)站備案通訊地址做自媒體掙錢的網(wǎng)站有哪些

鶴壁市浩天電氣有限公司 2026/01/22 08:45:45
網(wǎng)站備案通訊地址,做自媒體掙錢的網(wǎng)站有哪些,php網(wǎng)站添加驗證碼,網(wǎng)站開發(fā)類書籍#x1f345; 點擊文末小卡片#xff0c;免費獲取軟件測試全套資料#xff0c;資料在手#xff0c;漲薪更快自動化本身是為了提高工作效率#xff0c;不論選擇何種框架#xff0c;何種開發(fā)語言#xff0c;我們最終想實現(xiàn)的效果#xff0c;就是讓大家用最少的代碼#…點擊文末小卡片免費獲取軟件測試全套資料資料在手漲薪更快自動化本身是為了提高工作效率不論選擇何種框架何種開發(fā)語言我們最終想實現(xiàn)的效果就是讓大家用最少的代碼最小的投入完成自動化測試的工作?;谶@個想法我們的接口自動化測試思路如下1.不變的內(nèi)容全部通過配置化來實現(xiàn)比如腳本執(zhí)行的環(huán)境、請求的 HOST、URL 路徑、測試數(shù)據(jù)等2.環(huán)境和數(shù)據(jù)關(guān)聯(lián)變更依據(jù)不同的環(huán)境選擇不同的配置及對應(yīng)的測試數(shù)據(jù)3.抽取公共方法避免冗余代碼4.場景化的用例實現(xiàn)可配置化5.數(shù)據(jù)驅(qū)動。一、問題在做自動化的過程中不能只考慮單接口的腳本也要考慮場景化的用例。場景化的用例 不需要每個步驟都去校驗所有的數(shù)據(jù)可能 更多看重串聯(lián)后的最終效果。那什么是場景用例其實就是多個接口組成的業(yè)務(wù)場景常規(guī)寫代碼的做法是先調(diào)用接口1驗證結(jié)果 再調(diào)用接口2再繼續(xù)接口3… 等等在測試場景中可能只是各個接口的入?yún)⒉灰粯踊蛘呤钦{(diào)用的接口不一樣。這樣代碼寫起來就會冗余。比如def test_01(self): # step 01 result1 PackDemo().getTest() assert result1 4 # step02 result2 PackDemo2().getTest2(name) assert result2 name # step03 result3 DemoApi().getTest() assert result3 2這樣的用例對于簡單的接口沒什么問題但是對于復(fù)雜的接口校驗邏輯比較多或者入?yún)⒈容^多實現(xiàn)的方式就過于單一了。且不同場景的話每個都要更改調(diào)用的步驟和返回值場景越多冗余越多。如果使用配置化的方式每次從配置文件中動態(tài)加載配置的場景用例 而且能夠做到加載后做對應(yīng)的斷言那該多好。怎么做呢咱們看看一些核心的實現(xiàn)。二、方案2.1 項目結(jié)構(gòu)項目結(jié)構(gòu)如下img采用當前比較流行的 Python Pytest Allure 來實現(xiàn)具體結(jié)構(gòu)不做展開。2.2 場景用例的配置數(shù)據(jù)test_scenario.json { test_01: { step_1: { ---- 步驟節(jié)點名稱可自定義 packagePath: api, --- 這個步驟要運行的方法所屬類的包路徑 class: DemoApi, --- 這個步驟要運行的方法所屬類名稱 method: getTest, --- 這個步驟要運行的方法名稱 request: null, ---這個步驟運行的方法入?yún)?response: 2, ---這個步驟運行的結(jié)果可以是一個值或者對象 verify: { --- 數(shù)據(jù)校驗的節(jié)點 type: 1, ---數(shù)據(jù)校驗的類型 keys: null ---如果是校驗的特定字段這里需要輸入部分校驗的字段 } }, step_2: { packagePath: api.demo, class: PackDemo, method: getTest2, request: request - name, response: 6, verify: { type: 1, keys: null } }, step_3: { packagePath: api.demo, class: PackDemo2, method: getTest3, request: { name: param-name, num_list: [a, b, c] }, response: 8, verify: { type: 1, keys: null } } } }2.3 動態(tài)加載類在我們配置了以上的測試場景的數(shù)據(jù)后我們希望在用例執(zhí)行的過程中通過獲取我們的配置能夠動態(tài)的加載數(shù)據(jù)文件中提到的方法并執(zhí)行對應(yīng)的方法那這個過程的實現(xiàn)我們主要通過如下的動態(tài)加載類來實現(xiàn)。# DynamicLoad.py # 部分主要的摘錄如下 def __load_module(self): 加載對應(yīng)路徑下的模塊 :param package_path: 包路徑 :param class_name: 類名稱 :return: return importlib.import_module(. self.class_name, packageself.package_path) def __getClassInstance(self): 加載對應(yīng)的模塊下的類并返回對應(yīng)類的實例 :param module_name: 對應(yīng)的模塊 :param class_name: :return: self.my_module self.__load_module() self.my_class getattr(self.my_module, self.class_name)() return self.my_class def execMethod(self, method, *args): 加載對應(yīng)類下的方法 :param instance: 對應(yīng)的實例 :param method: 要執(zhí)行的方法 :return: result getattr(self.__getClassInstance(), method)(*args) return result有了以上動態(tài)加載的方法后在執(zhí)行場景用例時依據(jù)上述的方法就可以執(zhí)行測試文件中提到的方法。2.4 場景分析類在場景用例的測試數(shù)據(jù)中除了需要解析需要執(zhí)行的類、方法外還要解析文件中涉及到的出入?yún)⒓皵?shù)據(jù)比對方式因此這里還需要一個場景分析類來解析數(shù)據(jù)文件中關(guān)于具體執(zhí)行過程的配置。#ScenariosAnalyze.py def analyse_exe_scenario(self, case_data): step_result {} summary True for i in case_data: instance DynamicLoad(case_data[i][packagePath], case_data[i][class]) if case_data[i][request] is not None: result instance.execMethod(case_data[i][method], case_data[i][request]) else: result instance.execMethod(case_data[i][method]) if case_data[i][verify] is not None: compare_type case_data[i][verify][type] keys case_data[i][verify][keys] step_compare_result DataCompare().compare_type(compare_typecompare_type, actualresult, expectcase_data[i][response], keyskeys) if not step_compare_result: summary False step_result[i] step_compare_result step_result[summary] summary return step_result2.5 用例實現(xiàn)File : test_scenario.py class TestScenario: allure.story(場景用例01) allure.severity(allure.severity_level.BLOCKER) pytest.mark.smoke def test_01(self): result None case_data self.test_data_json[test_01] result self.scenario_analyze.analyse_exe_scenario(case_data) assert result[summary] is True通過上述簡單的腳本調(diào)用就可以完成一個場景用例的測試了。三、小結(jié)以上就是場景用例配置化的實現(xiàn)思路。它的優(yōu)點是1.配置化 一切固定不變的內(nèi)容全部配置化最終達到一個環(huán)境配置文件一套腳本幾套測試數(shù)據(jù)依據(jù)環(huán)境的不同選擇不同的測試數(shù)據(jù)執(zhí)行對應(yīng)的測試腳本2.門檻低因為配置化測試同學(xué)只要把測試數(shù)據(jù)文件中的關(guān)鍵節(jié)點配置好然后在腳本中寫下調(diào)用方法就完成用例編寫了3.好擴展在后續(xù)的實現(xiàn)中可以將這些配置全部頁面化包括環(huán)境、數(shù)據(jù)、腳本達到無代碼開發(fā)的目的缺點當然是不夠靈活所以沒有完美的方案只有合適的以上僅供大家參考。最后感謝每一個認真閱讀我文章的人禮尚往來總是要有的雖然不是什么很值錢的東西如果你用得到的話可以直接拿走這些資料對于做【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫這個倉庫也陪伴我走過了最艱難的路程希望也能幫助到你凡事要趁早特別是技術(shù)行業(yè)一定要提升技術(shù)功底。
版權(quán)聲明: 本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請聯(lián)系我們進行投訴反饋,一經(jīng)查實,立即刪除!

蘭州新站點seo代理???網(wǎng)站 制作

蘭州新站點seo代理,海口 網(wǎng)站 制作,電商平臺推廣費用預(yù)算,wordpress rewriteJava實現(xiàn)多類型圖形驗證碼生成#xff1a;從零構(gòu)建安全高效的驗證系統(tǒng) 在現(xiàn)代Web應(yīng)用的安全防線中#

2026/01/21 19:21:01

wordpress 菜單欄插件南寧seo專員

wordpress 菜單欄插件,南寧seo專員,平臺公司組建方案,360搜索關(guān)鍵詞優(yōu)化軟件Wan2.2-T2V-5B如何處理多主體交互描述#xff1f;‘兩人握手’場景測試 在短視頻和AI內(nèi)容爆發(fā)的今

2026/01/21 19:42:02

h5建站模板怎么自己網(wǎng)站建設(shè)

h5建站模板,怎么自己網(wǎng)站建設(shè),百度搜索推廣方案,自己做企業(yè)網(wǎng)站數(shù)據(jù)分析全流程實戰(zhàn)#xff1a;使用Miniconda-Python3.11加載百萬級CSV文件 在數(shù)據(jù)量動輒上百萬行的今天#xff0c

2026/01/21 15:45:01

專門做投標書的網(wǎng)站html網(wǎng)頁制作代碼范例

專門做投標書的網(wǎng)站,html網(wǎng)頁制作代碼范例,做酒店網(wǎng)站設(shè)計,網(wǎng)站表單模板作為一名資深游戲玩家#xff0c;我曾在PC上使用PS手柄時面臨諸多困擾#xff1a;按鍵不匹配、震動失效、燈條無法控制。直到

2026/01/21 17:53:01