日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

测试无数据_无数据驱动自动化测试

發布時間:2025/3/20 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 测试无数据_无数据驱动自动化测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在自動化測試中,經常會聽到一個詞數據驅動,大意是講通過測試數據驅動自動化用例的執行。其他相關的內容相信已經耳熟能詳了,這里不多說,今天給大家分享一個次叫做無數據驅動,主要思路就是盡量取消在測試用例中的數據引入,把主要的測試數據的維護放在自動化測試用例以外,節省成本的同時提高用例的健壯性。

無數據驅動自動化測試的目標就是,通過測試用例最小量的數據引入,編寫無限運行的測試用例,以降低維護工作量。

下面分享一個案例,以某一個商品售賣接口以及相關接口組成的一條測試用例。這個接口購買某一個header的接口,主要參數gid, pid,在這個用例里面寫死了,具體多少我忘記了,三年前的代碼了,翻出來已經很不容易。主要業務邏輯非常簡單,購買成功(有效期30天,自然天),然后屬性中增加響應的值,余額減少響應的值,順便對于購買這會額外贈送另外一個header的七天有效期。

?/**
??*?購買月卡用例
??*/
?public?void?testDemo001()?{
??String?label?=?"購買月卡用例"?+?TAB?+?Thread.currentThread().getStackTrace()[1];
??Headgear?headgear?=?new?Headgear(base);
??Long?aLong?=?headgear.getHeadgearInfo().get(27);
??int?balance?=?NajmBase.getUserBalance(drive.user_id);
??long?deadTime?=?drive.getDeadTime();
??Verify?verify?=?new?Verify(drive.bugMonthCard(gid,?pid));
??int?balance1?=?NajmBase.getUserBalance(drive.user_id);
??long?deadTime1?=?drive.getDeadTime();
??Long?aLong1?=?headgear.getHeadgearInfo().get(27);
??JSONObject?result?=?new?JSONObject();
??result.put("狀態碼為0",?verify.isRight());
??result.put("用戶金額減少",?balance?-?balance1?==?2000);
??result.put("用戶月卡有效期增加",?deadTime1?-?deadTime?==?30?*?DAY);
??result.put("用戶贈送頭套正常",?aLong1?-?aLong?==?7?*?DAY);
??MySqlTest.saveTestResult(label,?result);
?}

關于為什么測試用長成這個樣子,有興趣的歡迎關注FunTester測試框架:

  • Gitee地址https://gitee.com/fanapi/tester
  • GitHub地址https://github.com/JunManYuanLong/FunTester

末尾我會放上FunTester測試框架的視頻講解,視頻做得時間有點早,有些新功能,特別是性能測試方面缺失的略微多了些。可以參考我之前寫過性能測試的文章。

在上面的測試用例中,我首先新建了一個基于User的業務模塊類Headgear對象,為了完成接下來的模塊中的接口調用。還有基礎類NajmBase中我寫了一些靜態方法,這里應該是要單獨拿出來做一個單個項目的工具類,三年前前的代碼了。然后這個driver對象,是該用例類的基礎驅動對象,也是一個模塊類的對象,用于完成改模塊的接口調用,因為當前類就是該模塊的用例類,所以做了一個公共的類static對象。

這里的用例方法邏輯比較容易懂:第一步先從用戶個人headers信息中心獲取到27號的截止時間,然后獲取用戶的賬戶余額,然后用戶去購買指定id的header,然后保存響應對象,將響應轉換成通用的驗證對象verify,在獲取用戶余額,ID為27的header的截止日期。最后通過之前保存的對象和數據信息進行業務的判斷。

當然所有的用例都需要進行setup和setdown,這個用例需要維護的數據有幾項,下面分享一下我的處理方案。

  • ID為gid, pid的header的確定存在,而且執行用例的用戶必需保證初始化就是購買過且在有效期,相信這個不難做到。
  • ID為gid, pid的價格恒定在2000,且執行用例用戶余額在購買之前要大于這個數,這個不難辦到,在setup中能夠辦到。
  • ID為gid, pid的header有效期30天,贈送的headerID為27的基本屬性也跟ID為gid, pid的header一樣各項屬性保持穩定。
  • 保證隨時跟進業務變更,這個也不難。

這里花費較多時間去設計維護比如gid, pid這樣的參數所對應的信息,以及用戶金額等。

后期可以把這些信息全都優化掉,不必設置固定的gid, pid不必驗證有效期,可以從header信息的接口獲取。這樣gid, pid可以不需要,價格2000也是不需要,有效期30天和7天也是不需要的,贈送的ID為27的header也不一定需要(需要看業務接口提供不提供贈送規則)。

在實際運行中,幾乎沒有因為自動化用例的問題,基本做到了write once,run everywhere !。

幾乎的那一次原因如下:連開100年會員會怎樣,由此引起的用例執行預警方便調整以后再講。

雖不完美,足以表達我的思路!

下面是測試框架的視頻講解:

接口測試視頻

  • FunTester測試框架視頻講解(序)
  • 獲取HTTP請求對象--測試框架視頻講解
  • 發送請求和解析響應—測試框架視頻解讀
  • json對象基本操作--視頻講解
  • GET請求實踐--測試框架視頻講解
  • POST請求實踐--視頻演示
  • 如何處理header和cookie--視頻演示
  • FunRequest類功能--視頻演示
  • 接口測試業務驗證--視頻演示
  • 自動化測試項目基礎--視頻講解
  • JSONArray基本操作--視頻演示
  • 自動化項目基類實踐--視頻演示
  • 模塊類和自動化用例實踐--視頻演示
  • 性能框架多線程基類和執行類--視頻講解
  • 定時和定量壓測模式實現--視頻講解
  • 基于HTTP請求的多線程實現類--視頻講解

FunTester,非著名測試開發,文章記錄學習和感悟,歡迎關注,交流成長。

FunTester熱文精選

  • 綁定手機號性能測試
  • 固定QPS壓測初試
  • 性能測試中圖形化輸出測試數據
  • Groovy在JMeter中應用專題
  • 基于WebSocket的client封裝
  • 基于Socket.IO的Client封裝
  • Socket.IO接口多用戶測試實踐
  • Java和Groovy正則使用
  • 鏈路壓測中如何記錄每一個耗時的請求
  • JSON對象標記語法驗證類
點擊閱讀原文,查看公眾號歷史文章

總結

以上是生活随笔為你收集整理的测试无数据_无数据驱动自动化测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。