2023年十款開源測試開發工具推薦(自動化、效能、造資料、流量複製)

2023-02-22 15:00:33

1、AutoMeter-API 自動化測試平臺

AutoMeter 是一款針對分散式服務,微服務 API 做功能和效能一體化的自動化測試平臺,一站式提供釋出單元,API,環境,用例,前置條件,場景,計劃,報告等管理

在專案開發,迭代交付過程中開發人員,測試人員需要針對系統提供的 API 做偵錯,迴歸測試,效能測試。自動化測試,一個好的平臺本質上需要解決 API 測試的 5 大基本問題:

  • 1.支援不同的角色,技術人員多人共同作業
  • 2.支援定義多個不同的測試環境
  • 3.支援定義各種被測系統,API
  • 4.支援功能,效能,迴歸,自動化測試
  • 5.功能/效能明細報告,統計報告

專案地址:

https://gitee.com/season-fan/autometer-api

2、QA Wolf 瀏覽器自動化測試工具

QA Wolf 可幫助你以 10 倍的速度建立、執行和維護端到端的瀏覽器自動化測試。

專案地址:

https://github.com/qawolf/qawolf

3、Mimesis 用於 Python 的高效能虛假資料生成器

Mimesis 是一個用於 Python 的高效能虛假資料生成器,它以多種語言提供用於多種用途的資料。虛假資料可用於填充測試資料庫、建立虛假 API 端點、建立任​​意結構的 JSON 和 XML 檔案、匿名化生產中的資料等。

支援的功能

  • 簡單:易於使用和學習
  • 多語言:支援多種語言的資料
  • 效能:可用於 Python 的最快資料生成器
  • 資料多樣性:支援多種資料提供者用於各種目的
  • 通用資料提供者:從單個物件對所有提供者的簡化存取
  • 零依賴:不需要 Python 標準庫以外的任何模組
  • 基於模式的生成器:提供一種簡單的機制來通過任何複雜的模式生成資料

專案地址:

https://github.com/lk-geimfari/mimesis

安裝:

pip install mimesis

範例:

>>> from mimesis import Person
>>> from mimesis.locales import Locale
>>> person = Person(Locale.EN)

>>> person.full_name()
'Brande Sears'

>>> person.email(domains=['example.com'])
'[email protected]'

>>> person.email(domains=['mimesis.name'], unique=True)
'[email protected]'

>>> person.telephone(mask='1-4##-8##-5##3')
'1-436-896-5213'

4、Ddosify 高效能負載測試工具

Ddosify 是一個用 Golang 編寫的高效能負載測試工具和 DDOS 攻擊模擬。

特性:

  • 協定不可知 - 目前支援 HTTP、HTTPS、HTTP/2。其他協定正在開發中。
  • 基於場景 - 在 JSON 檔案中建立你的流程。無需一行程式碼!
  • 不同的負載型別 - 測試你的系統在不同負載型別上的限制。

專案地址:

https://github.com/ddosify/ddosify

5、AutoCannon HTTP/1.1 基準測試工具

AutoCannon 是一個用 Node.js 編寫的 HTTP/1.1 基準測試工具,受到 wrk 和 wrk2 的極大啟發,支援 HTTP 管道和 HTTPS。autocannon 可以產生比 wrk 和 wrk2 更多的負載。

專案地址:

https://github.com/mcollina/autocannon

6、Sharingan 流量錄製回放工具

Sharingan(寫輪眼)是一個基於 golang 的流量錄製回放工具,適合專案重構、迴歸測試等。

特性

  • 支援下游流量錄製。相比 tcpcopy、goreplay 等方案,回放不依賴下游環境。
  • 支援並行流量錄製和回放。錄製對服務影響小,回放速度更快。
  • 支援時間重置、噪音去除、批次回放、覆蓋率報告、常見協定解析等等。
  • 支援寫流量回放,不會汙染應用資料。
  • 不依賴業務框架,低應用浸入。

專案地址:

https://github.com/didi/sharingan

使用範例:

# Step1: 下載sharingan專案
$ git clone https://github.com/didi/sharingan.git
$ cd sharingan

# Step2: 使用客製化版golang,以go1.13為例
$ sh install.sh go1.13 # 支援go1.10 ~ go1.15,限mac、linux amd64系統
$ export GOROOT=/tmp/recorder-go1.13
$ export PATH=$GOROOT/bin:$PATH

# Step3: 編譯、後臺啟動replayer-agent「預設會佔用3515、8998埠,可修改」
# [回放接入檔案]內有直接下載bin檔案的連結,無需build
$ cd replayer-agent
$ go build
$ nohup ./replayer-agent >> run.log 2>&1 &

# Step4: 編譯、後臺啟動example範例「預設會佔用9999埠,可修改」
$ cd ../example
$ go build -tags="replayer" -gcflags="all=-N -l"
$ nohup ./example >> run.log 2>&1 &

# Step5: 開啟回放頁面
$ 瀏覽器開啟,http://127.0.0.1:8998 # 非本機替換IP即可
$ 頁面選擇要回放的流量點執行          # 內建提前錄製好的3條example範例流量

7、randdata 隨機測試資料生成工具

randdata 是一款基於 JAVA 開發的測試資料生成工具,為了測試人員、軟體開發人員、資料開發人員、售前工程師或產品經理演示提供生成隨機相應資料的全力打造的,支援個人資訊、地址、數位、網路、銀行、是非等多種資料的隨機生成,無需使用者再去編寫複雜 SQL 或程式就能生成附合中國人習慣的資料。從而大大的節約軟體開發的成本。

特點:

  • 無程式碼 : 無需編寫程式碼,即生成相應資料。
  • 執行簡單:使用者只要安裝 JDK1.8 及以上版本即可執行。
  • 資料隨機性:最大限度保證資料不重複。
  • 支援直接資料庫表生成:可直接匯入某些資料庫的表結構,而無須手工建表,通過給表指定生成資料型別即可。
  • 執行環境要求低:windows、linux 等 PC 機可直接執行,專案只有一個 jar 包,可通過 java -jar 包名即可執行。

專案地址:

https://gitee.com/chenlinux0768/randdata

8、DrissionPage WEB 自動化測試整合工具

DrissionPage,即 driver 和 session 的合體,是一個基於 python 的 Web 自動化操作整合工具。

requests 爬蟲面對要登入的網站時,要分析封包、JS 原始碼,構造複雜的請求,往往還要應付驗證碼、JS 混淆、簽名引數等反爬手段,門檻較高。若資料是由 JS 計算生成的,還須重現計算過程,體驗不好,開發效率不高。使用 selenium,則可以很大程度上繞過這些坑,但 selenium 效率不高。

因此,這個庫將 selenium 和 requests 合二為一,不同需要時切換相應模式,並提供一種人性化的使用方法,提高開發和執行效率。除了合併兩者,本庫還以網頁為單位封裝了常用功能,簡化了 selenium 的操作和語句,在用於網頁自動化操作時,減少考慮細節,專注功能實現,使用更方便。

特性

  • 允許在 selenium 和 requests 間無縫切換,共用 session。
  • 兩種模式提供一致的 API,使用體驗一致。
  • 人性化的頁面元素操作方式,減輕頁面分析工作量和編碼量。
  • 對常用功能作了整合和優化,更符合實際使用需要。
  • 相容 selenium 程式碼,便於專案遷移。
  • 使用 POM 模式封裝,便於擴充套件。
  • 統一的檔案下載方法,彌補瀏覽器下載的不足。
  • 簡易的設定方法,擺脫繁瑣的瀏覽器設定。

專案地址:

https://gitee.com/g1879/DrissionPage

9、Chaos Mesh 在 Kubernetes 上進行混沌測試

Chaos Mesh 是一個雲原生的混沌工程(Chaos Engineering)平臺,可在 Kubernetes 環境中進行混沌測試。

當前實現支援用於故障注入的主要操作:

  • pod-kill:模擬 Kubernetes Pod 被 kill。
  • pod-failure:模擬 Kubernetes Pod 持續不可用,可以用來模擬節點宕機不可用場景。
  • network-delay:模擬網路延遲。
  • network-loss:模擬網路丟包。
  • network-duplication:模擬網路包重複。
  • network-corrupt:模擬網路包損壞。
  • network-partition:模擬網路分割區。
  • I/O delay:模擬檔案系統 I/O 延遲。
  • I/O errno:模擬檔案系統 I/O 錯誤 。

專案地址:

https://gitee.com/mirrors/Chaos-Mesh

10、Automagica 智慧流程自動化平臺

Automagica 是一個開源智慧機器人流程自動化(SRPA,Smart Robotic Process Automation)平臺,藉助 Automagica,自動化跨平臺流程變得輕而易舉。Automagica 可以通過簡單程式指令碼實現開啟各種應用程式並對應用進行操作。

Automagica 需要 Python 3.7 環境,官方支援 Windows 10 平臺,Linux 和 Mac 目前官方還不支援。

專案地址:

https://github.com/OakwoodAI/Automagica
https://gitee.com/mirrors/Automagica

Automagica 使用場景:

  • 桌面互動自動化
  • Office 自動化,例如開啟 Excel 並進行資料填充
  • Web 自動化,例如開啟網址並進行網頁操作
  • 商業應用自動化
  • 自動開啟郵件應用並收發郵件
  • 遠端控制等等

例如:
開啟 Excel 並進行程式控制:


開啟畫圖工具並進行繪圖:

範例程式碼
該範例開啟 Windows 記事本並輸入 'Hello world!'.

PressHotkey('win','r')
Wait(seconds=1)
Type(text='notepad', interval_seconds=0)
PressKey('enter')
Wait(seconds=2)
Type(text='Hello world!', interval_seconds=0.15)

下面例子開啟 Chrome 瀏覽器並存取指定url

browser = ChromeBrowser()
browser.get('https://www.cnblogs.com/jinjiangongzuoshi/')