DUICUO

2023年に推奨されるオープンソースのテストおよび開発ツール10選(自動化、パフォーマンス、カオステスト、データ生成、トラフィック複製)

まず初めに、読者の皆様、ファンの皆様に、少し遅れましたが新年あけましておめでとうございます!皆様が楽しい新年を迎え、ご家族と共に幸せな一年を過ごされますように!今日は、便利なテスト開発ツールをまとめてご紹介します。この記事では、自動テスト、パフォーマンステスト、トラフィックレプリケーション、カオステスト、データ生成など、日々の業務で頻繁に使用する10個の必須テスト開発ツールをご紹介します。

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 インストール mimesis

例:

 >>> mimesisからインポート Person
>>> mimesis.localesからLocaleをインポートします
>>> person =人物(ロケール.EN )

>>> person.full_name ( )
「ブランド・シアーズ」

>>> person.email (ドメイン= [ 'example.com' ] )
'[email protected]'

>>> person .email (ドメイン= [ 'mimesis.name' ] unique = True )
'[email protected]'

>>> person.telephone (マスク= '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

使用例:

 # ステップ1 : Sharinganプロジェクトをダウンロードする
$ gitクローンhttps://github.com/didi/sharingan.git
$ cd 写輪眼

# ステップ2 : Go1.13を例に、Goのカスタマイズバージョンを使用します。(遅い場合はVPNの使用をお試しください)
`$ sh install .sh go1.13` # go1.10 ~ go1.15をサポートしますが、Mac および Linux amd64 システムに限定されます。
$ エクスポート GOROOT =/ tmp /レコーダー- go1.13
$ エクスポート PATH = $GOROOT / bin : $PATH

# ステップ 3 :バックグラウンドでプレイヤー エージェントをコンパイルして起動します (デフォルトではポート 3515 と 8998 が使用されますが、変更できます)。
[ Replay Integration Documentation ]には、bin ファイルを直接ダウンロードするためのリンクが含まれています。ビルドは必要ありません。
$ cd リプレイヤー-エージェント
$ ビルドを実行
$ nohup ./replayer-agent >> .log 2を実行>& 1 &

# ステップ 4 :例をコンパイルしてバックグラウンドで起動します (デフォルトのポート 9999 が使用されますが、これは変更できます)。
$ cd .. /
$ go build - tags = "replayer" - gcflags = "all=-N -l"
$ nohup ./example >> .log 2を実行>& 1 &

# ステップ5 :リプレイページを開く
ブラウザを開き、 http://127.0.0.1:8998移動します(ローカル マシンではない場合はIPアドレスを置き換えます)
ページで再生するトラフィックポイントを選択し、# を実行します。これには、事前に記録された 3 つのサンプルトラフィックストリームが含まれます。

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

randdataは、テスター、ソフトウェア開発者、データ開発者、プリセールスエンジニア、プロダクトマネージャー向けに設計されたJavaベースのテストデータ生成ツールです。個人情報、住所、電話番号、ネットワーク、銀行情報、はい/いいえで答えられる質問など、様々なデータタイプに対応し、ランダムデータを生成するための包括的なソリューションを提供します。ユーザーは、中国のユーザー習慣に合わせたデータを生成するために複雑なSQLやプログラムを記述する必要がないため、ソフトウェア開発コストを大幅に削減できます。

特徴:

  • コードなし: コードを記述せずに、対応するデータを生成します。
  • 実行が簡単: 実行には JDK 1.8 以上をインストールするだけで済みます。
  • データのランダム性: 可能な限りデータが重複しないようにします。
  • データベーステーブルの直接生成をサポート:手動でテーブルを作成することなく、特定のデータベースのテーブル構造を直接インポートできます。データ型を指定するだけでテーブルを生成できます。
  • 実行環境の要件が低いため、WindowsやLinuxなどのPCで直接実行できます。プロジェクトは1つのJARファイルのみで構成されており、`java -jar file_name` を実行するだけで実行できます。


プロジェクトアドレス:

 https://gitee.com/chenlinux0768/randdata

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

DrissionPage は、ドライバーとセッションを組み合わせた、Web 自動化操作用の Python ベースの統合ツールです。

ログインが必要なウェブサイトの場合、リクエストクローラーはデータパケットとJavaScriptソースコードを分析し、複雑なリクエストを構築する必要があるだけでなく、CAPTCHA、JavaScript難読化、署名パラメータといったクロール対策技術にも対処する必要があるため、導入障壁が非常に高くなります。データがJavaScriptの計算によって生成される場合、計算プロセスを再現する必要があり、ユーザーエクスペリエンスの低下と開発効率の低下につながります。Seleniumを使用すればこれらの落とし穴をほぼ回避できますが、Selenium自体の効率性はそれほど高くありません。

そのため、このライブラリはSeleniumとRequestsを1つに統合し、ユーザーが必要に応じて適切なモードを切り替えられるようにすることで、開発と実行効率を向上させるユーザーフレンドリーなアプローチを提供します。このライブラリは、2つを統合するだけでなく、Webページごとによく使用される機能をカプセル化することで、Seleniumの操作とステートメントを簡素化します。Webページの自動化に使用すると、細部を考慮する必要性が減り、ユーザーは機能に集中でき、より便利に使用できます。

特性

  • Selenium と Requests 間のシームレスな切り替えとセッションの共有を可能にします。
  • どちらのモードも一貫した API を提供し、一貫したユーザー エクスペリエンスを実現します。
  • ユーザーフレンドリーなページ要素の操作方法により、ページ分析の作業負荷とコーディング量が削減されます。
  • よく使用される機能が統合され、最適化され、実際の使用ニーズにさらに応えられるようになりました。
  • Selenium コードと互換性があるため、プロジェクトの移行が容易になります。
  • カプセル化には POM パターンが使用され、拡張が容易になります。
  • ブラウザ ダウンロードの欠点を補うための統一されたファイル ダウンロード メソッド。
  • シンプルな設定方法により、複雑なブラウザ設定の手間が省けます。

プロジェクトアドレス:

 https://gitee.com/g1879/DrissionPage

9. Kubernetes上のChaos Mesh: カオステスト

Chaos Mesh は、Kubernetes 環境でのカオス テストを可能にするクラウド ネイティブのカオス エンジニアリング プラットフォームです。

現在の実装では、フォールト インジェクションの次の主な操作がサポートされています。

  • pod-kill: Kubernetes Pod の強制終了をシミュレートします。
  • pod-failure: Kubernetes Pod が継続的に利用できない状態をシミュレートし、ノードのクラッシュや利用不可のシナリオをシミュレートするために使用できます。
  • network-delay: ネットワーク遅延をシミュレートします。
  • network-loss: ネットワーク パケット損失をシミュレートします。
  • network-duplication: ネットワーク パケットの複製をシミュレートします。
  • network-corrupt: ネットワーク パケットの破損をシミュレートします。
  • network-partition: ネットワーク分割をシミュレートします。
  • I/O 遅延: ファイル システムの I/O 遅延をシミュレートします。
  • I/O errno: ファイル システムの I/O エラーをシミュレートします。

プロジェクトアドレス:

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

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

Automagicaは、クロスプラットフォームのプロセス自動化を容易にするオープンソースのスマート・ロボティック・プロセス・オートメーション(SRPA)プラットフォームです。Automagicaは、シンプルなスクリプトを使用して、さまざまなアプリケーションを起動して操作できます。

Automagica は Python 3.7 環境を必要とし、Windows 10 プラットフォームで公式サポートされています。Linux と Mac は現在公式サポートされていません。

プロジェクトアドレス:

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

Automagica の使用例:

  • デスクトップインタラクション自動化
  • Excel を開いてデータを入力するなどのオフィス自動化。
  • Web サイトを開いたり、Web ページ操作を実行したりする Web 自動化。
  • ビジネスアプリケーションの自動化
  • メールアプリケーションを自動的に開き、メールを送受信します
  • リモコン等

たとえば、Excel を開いてプログラム制御を実行します。

描画ツールを開いて描画を開始します。

サンプルコード: この例では、Windows のメモ帳を開き、「Hello world!」と入力します。

 PressHotkey ( 'win' , 'r' )
待機( secnotallow = 1 )
タイプ( text = 'notepad' interval_secnotallow = 0 )
PressKey ( 'Enter' )
待機( secnotallow = 2 )
( text = 'Hello world!' interval_secnotallow = 0.15 )と入力します

次の例では、Chrome ブラウザを開いて、指定された URL にアクセスします。

ブラウザ= ChromeBrowser ( )
ブラウザ.get ( 'https://www.cnblogs.com/jinjiangongzuoshi/' )

この記事はWeChat公式アカウント「テスト開発テクノロジー」から転載したものです。以下のQRコードからフォローできます。転載の許可については、「テスト開発テクノロジー」公式アカウントまでお問い合わせください。