web-dev-qa-db-ja.com

分度器を実行する方法

私はAngularJSが初めてです。私は分度器でいくつかのエンドツーエンドのテストを学び、実行しようとしています。私は提供された情報を調べてきました here 。 「Run with protractor myConf.js "。

分度器はコマンドラインプログラムですか?または何?私が特定しようとしているのは、「protractor myConf.js」をどの環境で実行する必要があるかです。分度器をグローバルにインストールしたくありません。モジュールをローカルコンテキストで実行したいと思います。それはオプションですか?

ありがとうございました、

15
user2871401

これらは入門ドキュメントです:

https://github.com/angular/protractor/blob/master/docs/getting-started.md

マシンに node.js と、 npm ノードパッケージをインストールする必要があります。これらの2つのものをインストールしたら、上記のドキュメントの残りの指示に従うことができます。

Protractor を起動して実行する前に、インストールに約5〜10分かかります。まだ動けない場合はお知らせください。

10
tennisgent

ノードを介して実行する必要があります。

したがって、プロジェクトのベースから。

node node_modules\protractor\bin\protractor test\myConf.js
15
Brian F

次の方法でProtractorをグローバルにインストールできます。

$ npm install -g protractor

その後、コマンドラインで使用可能になります(Windows/Linux)

$ protractor protractor.conf.js

現在のプロジェクトにのみインストールするには:

$ npm install protractor --save-dev

次のようなnode_modules経由で実行できます(Windows/Linux):

$ ./node_modules/.bin/protractor protractor.conf.js

package.jsonに追加して、簡単に実行できます:

"scripts": {
    "test": "./node_modules/.bin/protractor protractor.conf.js"
}

じゃあ後で:

$ npm test
11
Reactgular

npm-run-all (またはconcurrentlyparallelshell)を使用する必要があります。これは、コマンドの開始と終了をより詳細に制御できるためです。

npm-run-onceprotractorhttp-serverローカルにインストールされている場合、package.jsonを次のように変更できます。

scripts: {
  "webdriver-start": "./node_modules/protractor/bin/webdriver-manager update && ./node_modules/protractor/bin/webdriver-manager start",
  "protractor": "./node_modules/protractor/bin/protractor ./tests/protractor.conf.js",
  "http-server": "./node_modules/http-server/bin/http-server -a localhost -p 8000",
  "python-example": "python -m SimpleHTTPServer",
  "test1": "npm-run-all -p -r webdriver-start http-server protractor",
  "test2": "npm-run-all -p -r webdriver-start python-example protractor"
}

-p =コマンドを並行して実行します。

-r =コマンドの1つがゼロで終了すると、すべてのコマンドを強制終了します。

ランニング npm run test1は、Seleniumドライバーを起動し、httpサーバーを起動して(ファイルを提供する)、分度器テストを実行します。すべてのテストが終了すると、httpサーバーとSeleniumドライバーが閉じられます。

9
nir

TypeScriptを使用した例を次に示しますが、そうでない場合は、 'tsc'をすべて削除できます。 package.json scriptsセクションを次のように設定します。

  "scripts": {
    "postinstall": "node node_modules/protractor/bin/webdriver-manager update",
    "pretest": "npm run tsc",
    "test": "npm run eslint && npm run protractor",
    "eslint": "node node_modules/eslint/bin/eslint.js '*.js' 'test/**/*.js' 'test/**/*.ts'",
    "protractor": "node node_modules/protractor/bin/protractor",
    "start": "node node_modules/protractor/bin/webdriver-manager start",
    "tsc": "node node_modules/TypeScript/bin/tsc"
  }

npm start 1つの端末でnpm test別のもの。

2
andriyze

分度器を実行する最良の方法は、プロジェクトにローカルにインストールしてから、npmスクリプトで実行することだと思います。

1つのステップをバックアップすると、npm自体はファイルシステムに基づく階層を使用して実行可能モジュールを見つけます。 npm binと入力すると、npmは実行可能なものを見つけるために最初に探す場所を示します(例:[project]/node_modules/.bin)。 package.jsonに分度器を含めると、npmインストールを実行すると、分度器とwebdriver-managerの両方の.binディレクトリに分度器が追加されます。

この情報を使用して分度器を実行する方法はいくつかあります。 ~~正しい~~私が思う最善の方法は、npmスクリプトを使用することです。 npmスクリプトを使用すると、npmはローカルの.binディレクトリから分度器を自動的にロードします。

ここに例があります

package.json
{
  "name": "awesomeapp",
  "version": "1.0.0",
  "devDependencies": {
    "protractor": "latest"
  },
  "scripts": {
    "test-e2e": "protractor protractor.conf",
    "Selenium": "webdriver-manager start"
  }
}

これで、npm run SeleniumでSeleniumサーバーを実行し、npm run test-e2eで分度器テストを実行できます。

これはクロスプラットフォームでもあるため、MacまたはWindowsを使用している場合は、どちらの方法でもカバーされます。

注:これらのスクリプトではクロスプラットフォームではないものを実行できます( npm docs )あなたに、あなたは shelljs を使用することをお勧めします。

P.P.S.上記の点を整理したくありませんでしたが、npmにはpreおよびpostフックもあるため、1つのコマンドでSeleniumを更新および実行できます。

"scripts": {
    "preselenium": "webdriver-manager update",
    "Selenium":    "webdriver-manager start"
}

理論的には、Windowsは&&をサポートする必要があります。

"scripts": {
  "Selenium":    "webdriver-manager update && webdriver-manager start"
}
1
Ynot

空の分度器プロジェクトを作成するコードジェネレーターがあります。指示は簡単に従う必要があります。

https://npmjs.org/package/generator-protractor

1
Andres D

はい、次のコマンドを使用して分度器を実行できます。

npm install protractor

その後、次の方法でアクセスできます。

./node_modules/.bin/protractor conf.js

詳細情報については、 分度器-AngularJSのエンドツーエンドテスト をご覧ください。これは開始するのに非常に良い場所です。

0
Jagannath

ここに完全な初心者向けチュートリアルがあります: 初心者向け分度器ビデオ

0
Pankaj Dubey

入門

Protractorでは、Chromeヘッドレス、Sauce Labsに統合された複数のブラウザーを使用しました。テスト自動化実行レポート、統合方法を見てみましょう。

素晴らしいQA

前提条件

npmはNode.jsと共に配布されます。つまり、Node.jsをダウンロードすると、自動的にnpmがコンピューターにインストールされます。

1. Install nodejs

最初に、分度器をシステムにグローバルにインストールします:分度器を開発依存としてインストールします:

2. run npm install -g Protractor

3. run npm install protractor --save-dev

スタンドアロンのSelenium Serverを手動でインストールおよび起動するには、Protractorに付属のwebdriver-managerコマンドラインツールを使用します。これにより、サーバーとChromeDriverがインストールされます。

4. run npm install -g webdriver-manager

5. run updated webdriver-manager

これによりサーバーが起動します。 INFOから始まる多くの出力ログが表示されます。最後の行は「Info-Started org.openqa.jetty.jetty.Server」です。

5. run start webdriver-manager

テストセッションを実行している間、サーバーを実行したままにします。構成ファイルで、seleniumAddressを実行中のサーバーのアドレスに設定します。デフォルトは http:// localhost:4444/wd/hub です。

6. Finally run your script - Protractor<location of your config file>conf.js

ビルドとテスト

Githubのチェックアウト: https://github.com/shahing/Protractor-Web-Automation

0
Shahin

まず、 https://nodejs.org/en/download/ からnode.jsをインストールしてから、「npm install -g」を使用して分度器をインストールする必要があります分度器"。これにより、分度器がグローバルにインストールされます。分度器をローカルにインストールしたときに問題に直面しました。グローバルにインストールしてみてください。または、以下のようにpackage.jsonファイルですべての依存関係を提供できます。

{
  "dependencies": {
    "protractor": "4.0.3",//any latest versions of these.
    "protractor-jasmine2-screenshot-reporter": "0.3.2",
    "jasmine-terminal-reporter": "1.0.3"
  },
  "scripts": {
    "postinstall": "node node_modules\\protractor\\bin\\webdriver-manager update"
  }
}

上記のpackage.jsonファイルには、テスト結果のレポートにも依存関係があります。そして、webdriver-manager updateを実行する必要があります。これは、実行中のSeleniumサーバーのインスタンスを取得するためのヘルパーツールです。

Package.jsonファイルにすべてを入れ、「npm install」を実行してすべての依存関係をインストールできます。これにより、「node_modules」フォルダーが作成されます。

次に、構成ファイルex:conf.jsを作成します。これは次のようなものです。

// An example configuration file. There are the reporters which are used to give the test results. There are many reporters. You can use which ever is convenient. The below reporters are for example to show how to configure them.
var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
var JasmineTerminalReporter = require('jasmine-terminal-reporter');

//To get the Current Date and Time. To make the test output more clear, you can give date.
var currentDate = new Date(),
    currentHoursIn24Hour = currentDate.getHours(),
    month = currentDate.getMonth() + 1,
    totalDateString = currentDate.getDate() + '-' + month + '-' + currentDate.getFullYear() +
        '-' + currentHoursIn24Hour + 'h-' + currentDate.getMinutes() + 'm';

var htmlReporter = new HtmlScreenshotReporter({
    pathBuilder: function (currentSpec, suites, browserCapabilities) {
        'use strict';
        return currentSpec._suite.description + totalDateString + '/' + browserCapabilities.get('browserName') + '/' + currentSpec.description;
    },
    dest: 'TestOutput',
    cleanDestination: false,
    showSummary: true,
    showQuickLinks: true
});


exports.config = {

    directConnect: true,//If you make this flag true, it connects the browser directly.
    capabilities: {
        'browserName': 'chrome'
    },

    //this is to bring up the test dependencies. Some kind of setup. run once
    beforeLaunch: function () {
        'use strict';
        return new Promise(function (resolve) {
            htmlReporter.beforeLaunch(resolve);
        });
    },

    //once per capabilities.
    onPrepare: function () {
        jasmine.getEnv().addReporter(htmlReporter);
        jasmine.getEnv().addReporter(new JasmineTerminalReporter({
            isVerbose: true,
            showColors: true
        }));
    },

    //A callback function called once all tests have finished running and
    // the WebDriver instance has been shut down.
    afterLaunch: function (exitCode){
        return new Promise(function(resolve){
            htmlReporter.afterLaunch(resolve.bind(this, exitCode));
        });
    },

    getPageTimeout: 120000,
    allScriptsTimeout: 120000,
    specs: ['../TestScripts/*.js']//This contains the test files.
};

セットアップが完了したら、テストファイルを作成します。テストは、「describe」と「it」を含むジャスミンフレームワークを使用して記述されています。 「describe」は、テストを含む「it」を保持します。これを通過できます: http://www.protractortest.org/#/

次に、「分度器conf.js」を使用してテストを実行します。これにより、テストを実行し、構成ファイルで設定したTestOutputフォルダーにレポートを生成します。

0
sandhya

config.jsにスイートがある場合は、これを試してください

suites: {

  TESTCASES_RELATED_TO_SUITE1: ['TEST_CASES/Suite1/**/*spec.js'],
  TESTCASES_RELATED_TO_SUITE2: ['TEST_CASES/Suite2/**/*spec.js']

},

テストは、次のようにコマンドラインから実行できます。

<path>protractor config.js --suite TESTCASES_RELATED_TO_SUITE1

これにより、1つのテストスイートのみが実行されます。

0
Madhu S N

分度器のテストにIntelliJを使用しています。また、このためには、node.jsおよび分度器のインストールとともにIntelliJ Ultimate Editionが必要であることに注意してください。

詳細はこちらで確認できます IntelliJでの分度器のセットアップ

0
Ashish Deshmukh