Qmonus Documents /
FrontTester /7.FAQ

よくある質問

  • 旧E2Eとの互換はありますか
  • ブラウザのバージョン対応について教えてください
  • ローカル端末で動作させることはできますか
  • 効率的な試験コードの記載方法はありますか
  • ワンタイムパスワードに対応した試験は可能ですか



  • 旧E2Eとの互換はありますか

    A. FrontTesterと旧E2Eの互換性はあります。
    詳しくはマイグレーションガイドを確認ください。

    エンジンについて

    FrontTesterはplaywright 、 旧E2Eはpuppeteerを使用しています。
    playwrightはpuppeteerの開発チームが作成した上位互換のツールとも呼ばれるようなものとなっており、最小の手間で旧E2Eから移行が可能です。

    フレームワークについて

    ユーザが素早く旧E2Eからのマイグレに移行可能にするため、GUI使用感、試験パラメータ記述、APIなど全てにおいて変更がないようになっております。




    ブラウザのバージョン対応について教えてください

    A. ブラウザのバージョンはplaywrightのバージョンに紐づいて最新化を行います。
    リリースノートにて使用のFrontTesterバージョンを確認ください。




    ローカル端末で動作させることはできますか

    A. ローカル端末で使用可能です。
    Qmonus SDK Portal > E2E Tester画面左のボタンDownload Offline Toolよりダウンロードください。




    効率的な試験コードの記載方法はありますか

    A. 実行エンジンであるplaywright のコードジェネレータ機能※1 を用いて画面操作のレコーディングとコードの自動生成が可能です。
    ローカル環境で適当な作業ディレクトリを用意いただき、下記を実行してください。


    npm init -y npm i -D playwright@${edwowと同じバージョン} npx playwright codegen ${試験対象URL}

    起動されたブラウザで期待する試験パターンの操作の後、
    code editorに自動生成されたコードのtest('test', async ({ page }) => {内のコードをコピーすることで、サンプルを取得可能です。


    import { test, expect } from '@playwright/test'; test('test', async ({ page }) => { await page.goto('https://portal-{portal_id}.sdk-lab.qmonus.net/loginpage'); await page.locator('img').first().click(); await page.locator('[placeholder="username"]').click(); await page.locator('[placeholder="username"]').fill('test_user'); });

    ※1 コードジェネレータはβ機能のため、詳細が変更になる可能性があります。詳しくはplaywrightの公式ドキュメント/ GitHub を確認してください。




    ワンタイムパスワードに対応した試験は可能ですか

    可能です。以下を参考にしてください。

    認証システムから提示されたQRコードを文字列として読み込んだ場合、下記のようなOTP auth URIが得られます。

    otpauth://totp/{issuer}:{account_name}?secret={secret_string}&issuer=…

    secret_stringの値を控え、後述のtotp.generate関数の引数に指定してください。

    FrontTesterでは totp-generator module ( https://github.com/bellstrand/totp-generator ) をtotp moduleとして定義しています。totp-generator を使用し、生成したワンタイムパスワードを適切に入力してください。


    module.exports = async ( { params , root , actions , page, context, frame, totp } )=>{ let r = totp.generate("{secret_string}") await page.type("#oneTimePassword" , r.otp , {delay:10});
    8.リリースノート
    6.スペックと推奨構成