フロントエンドE 2 Eテスト略解
13395 ワード
E 2 Eとは
E 2 E(End To End)すなわちエンドツーエンドテストは、ブラックボックステストに属し、テスト例を作成することによって、シミュレーションユーザー操作を自動化し、コンポーネント間の通信が正常であることを確保し、プログラムフローデータの伝達が予想通りである.
典型的なE 2 Eテストフレームワークの比較
名前
断言する
ブラウザ間でサポートするかどうか
インプリメンテーション
公式サイト
オープンソース
nightwatch
assertとChai Expect
はい
selenium
http://nightwatchjs.org/
はい
cypress
Chai、Chai-jQuery等
いいえ
Chrome
https://www.cypress.io/
はい
testcafe
カスタムアサーション
はい
seleniumベースではない
https://devexpress.github.io/testcafe/
はい
katalon
TDD/BDD
はい
不明
https://www.katalon.com/katalon-studio/
いいえ
テストの使用比较を経て、nightwatchとcypressはvueの推荐のフレームワークで、コミュニティの活跃度はわりに高くて、机能は比较的に完备して、オープンソース、推荐の2つの选択(nightwatchはjdkを诘める必要があって、准备の仕事は多くて、しかしAP Iの豊富さはもっと高いです;cypressは自分の可視化のフォームがあって、运行の情报を记录することができて、bugの逸品を再现
nightwatch
1.インストール
npm i selenium-server nightwatch chromedriver -D
chromedriverのインストールは必要で、とても穴があいて、もし梯子がなければネット上で単独のパッケージを探して、それからプロファイルを変更します
2.構成
ルートディレクトリの新規作成conf.js(json、推奨js):
const path = require('path');
module.exports = {
//
src_folders: ['tests'],
//
output_folder: 'reports',
// selenium
selenium: {
start_process: true,
server_path: require('selenium-server').path,
host: '127.0.0.1',
// selenium log
log_path: 'reports',
port: 9090,
cli_args: {
'webdriver.chrome.driver': require('chromedriver').path,
'webdriver.gecko.driver': require('chromedriver').path
}
},
test_settings: {
default: {
launch_url: 'http://localhost',
selenium_port: 9090,
selenium_host: 'localhost',
silent: true,
screenshots: {
enabled: false,
path: ''
}
},
chrome: {
desiredCapabilities: {
browserName: 'chrome',
javascriptEnabled: true,
acceptSslCerts: true
}
}
}
};
3.試験用例
testsフォルダを新規作成し、中にtestを新規作成します.js、内容は以下の通りです.
module.exports = {
'Demo test Baidu' : function (browser) {
browser
.url('www.baidu.com')
.waitForElementVisible('body', 1000)
.setValue('input[name=wd]', 'NightWatch')
.click('#su')
.pause(1000)
.assert.containsText('#container', 'NightWatch')
.end();
}
};
4.運転
①package.jsonでの構成
"scripts": {
"test": "./node_modules/.bin/nightwatch --env"
},
直接
npm test
でもいいし、shellで手動でもいいです.②ルートディレクトリ新規entry.js(名前は自起)require('nightwatch/bin/runner.js');
その後shell中
node entry.js
cypress
1.インストール
npm install cypress --save-dev
2.起動
./node_modules/.bin/cypress open
npm scriptsに追加可能
3.試験用例を書く
touch {your_project}/cypress/integration/simple_spec.js
describe('My First Test', function() {
it("Gets, types and asserts", function() {
cy.visit('https://example.cypress.io')
cy.contains('type').click()
// Should be on a new URL which includes '/commands/actions'
cy.url().should('include', '/commands/actions')
// Get an input, type into it and verify that the value has been updated
cy.get('.action-email')
.type('[email protected]')
.should('have.value', '[email protected]')
})
})