angular 6+をフロントエンドフレームワークとして使用するWebアプリケーションをロード/パフォーマンステストしたい。アプリケーションが非常に大きく、多くのウィザード/モーダルなどを使用している。実際のe2e-frontend-tests(API呼び出しのテストだけでなく、js-renderingなど)
このようなアプリケーションをテストするための現在の最先端のアプローチとツールは何ですか?
明確にするために、私は例えばのような実際のe2eパフォーマンステストをしたいと思いますブラウザをヘッドレスモードで開き、ウィザードを開いて、ウィザードが表示されるまでの時間を取得します。 Seleniumを使用したフロントエンドテストのように。 Seleniumでもこれを行うことができますが、適切なツールかどうかはわかりません。
UIブラウザーテストのみを使用してアプリケーションのストレステストを実際に行うことはできません。理想的には、すべてのアプリケーションAPI呼び出しのストレステストと、UI /ブラウザーテストの両方を実行したいとします。
検討する1つのオプションは 最終的にはe2eランナー であり、これらのタスクの両方を実行でき、負荷テストとSeleniumテストの並列実行が可能です。
次のようになります。「data」フォルダには、APIにヒットするオプションの必要な検証ルールを含む、以前に記録されたhttpリクエストが含まれています。
@ test.yaml
defaults:
target:
URL: ssh://127.0.0.1/
credentials: localhost
pipeline:
init:
action: Selenium:start
version: 3.4.0
port: 8085
sdk: jdk
sdkVersion: 1.8
test:
multiAction: true
stressTest:
action: run
request: @load_test
async: true
testUI:
action: Selenium:run
browser: firefox
remoteSelenium:
URL: http://127.0.0.1:8085
commands:
- get(http://play.golang.org/?simple=1)
- (#code).clear
- (#code).sendKeys(package main
import "fmt"
func main() {
fmt.Println("Hello Endly!")
}
)
- (#run).click
- command: output = (#output).text
exit: $output.Text:/Endly/
sleepTimeMs: 1000
repeat: 10
- close
expect:
output:
Text: /Hello Endly!/
ここで、@ load_test.yaml
init
testEndpoint: rest.myapp.com
pipeline:
test:
data:
[]Requests: '@data/*request.json'
range: '1..1'
template:
info:
action: print
message: starting load testing
load:
action: 'http/runner:load'
threadCount: 3
'@repeat': 100000
requests: $data.Requests
load-info:
action: print
message: 'QPS: $load.QPS: Response: min: $load.MinResponseTimeInMs ms, avg: $load.AvgResponseTimeInMs ms max: $load.MaxResponseTimeInMs ms'