Quantcast
Viewing all articles
Browse latest Browse all 8883

mocha + chai + SeleniumによるE2Eテスト メモ

mocha + chai + SeleniumによるE2Eテスト方法についてメモする。 e2eテストとは End to Endテストの略称。 システム全体が正しく動作することを確認するテスト。 Webサービスの場合:ユーザと同様にブラウザ操作を行い、サービスが期待通りの挙動をしているか確認する。 mocha テスティングフレームワーク テストを記述する関数群を提供し、それらの関数を使って書かれたテストの結果を判定、集計した上で結果を表示する機能を持つフレームワーク。 以下の記述方法に対応している。 TDD(テスト駆動開発): メソッド動作をテストで表現しながら設計していく考え方 BDD(振る舞い駆動開発): 振る舞い(要求仕様)をテストで表現しながら設計していく考え方 アサーションツールはバンドルされていない。 chai アサーションツール テストの実行結果を判定する。 selenium Web ブラウザの操作を自動化するためのフレームワーク。 テスト以外にもタスクの自動化や Web サイトのクローリングなど様々な用途で利用される。 Selenium を使ってブラウザを自動で操作するには以下をインストールする必要がある。 Web ブラウザ Google Chrome, Firefox, など WebDriver ブラウザを操作するための API を公開するモジュール Selenium WebDriver と通信しプログラムからブラウザを操作するライブラリ 事前準備 node.jsインストール ライブラリインストール npm install -D selenium-webdriver mocha chai chromedriver@89.0.0 ※chromedriverバージョンは使用中のGoogle Chromeバージョンに合わせる。 テストコード test/test.js 表示ページのtitle要素検証 検索ボックス入力によるページ遷移検証。 const { Builder, By, Key } = require("selenium-webdriver"); var chai = require('chai'); var assert = chai.assert; let driver; // テスト対象の宣言 describe("BDD Test", () => { // describeの前に実行される前提条件を記述。 // Google Chrome起動 before(() => { driver = new Builder().forBrowser("chrome").build(); }); // describeの後に実行される後処理を記述。 // Google Chrome終了 after(() => { return driver.quit(); }); // 検証内容を記述。 // 1. 表示ページの`title`要素検証 it("正常系 Qiitaページタイトル検証", async () => { // 指定したURLへ遷移 await driver.get("https://qiita.com"); // title要素を取得する。 const title = await driver.getTitle(); // 検証 assert.strictEqual(title, "Qiita"); }); // 2. 検索ボックス入力によるページ遷移検証。 it("正常系_Qiita検索ページ遷移検証", async () => { // 指定したURLへ遷移 await driver.get("https://qiita.com"); // 検索ボックスに「selenium」を入力し、検索。 await driver.findElement(By.xpath('/html/body/div[1]/div[1]/div/div/div/div[1]/form[1]/input')).sendKeys("selenium", Key.RETURN); // URLを取得 const currentUrl = await driver.getCurrentUrl(); // 検証 assert.strictEqual(currentUrl, "https://qiita.com/search?q=selenium"); }); }); テスト実行 package.jsonにmochaでテスト実行をするnpm scriptを追加する。 "scripts": { "test": "mocha test/test.js --timeout 20000" } 以下のコマンドを実行する。 npm run test 参考情報 JavaScript(Node.js)でSeleniumを使って自動UIテストをする方法 Node.jsとSeleniumでWebアプリのUIテストを自動化(2018年版) mocha / chai チートシート Mochaを使ってJavaScriptのテストをブラウザで実行してみよう mochaとchaiの最も基本的な使い方

Viewing all articles
Browse latest Browse all 8883

Trending Articles