【壁割れ推奨!】10のオープンソーステスト開発ツール(自動化、パフォーマンス、データ作成、トラフィックレプリケーション)

目次

1. AutoMeter-API 自動テスト プラットフォーム

2. QA Wolfブラウザ自動テストツール

3. Mimesis、Python 用の高性能フェイクデータジェネレーター

4. Ddosify 高性能負荷テスト ツール

5. AutoCannon HTTP/1.1 ベンチマーク ツール

6.写輪眼交通記録・再生ツール

7. randdataランダムテストデータ生成ツール

8. DrissionPage WEB自動テスト統合ツール

9. Chaos Mesh は Kubernetes 上でカオス テストを実行します

10. Automagica インテリジェント プロセス オートメーション プラットフォーム

 情報の入手方法


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 は、プロジェクトの再構築や回帰テストなどに適した、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/')

 资料获取方法

【留言777】

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

おすすめ

転載: blog.csdn.net/GDYY3721/article/details/132210350