English 中文(简体)
Protractor and Selenium Server
  • 时间:2024-03-22 22:06:35

Protractor - Protractor And Selenium Server


Previous Page Next Page  

如前所述,Protractor是安热和安吉斯应用的开放源、终端至终端测试框架。 它是Node.js方案。 另一方面,Selenium是一个浏览器自动化框架,其中包括Selenium服务器、网络驱动器软件和网络驱动器浏览器。

Protractor with Selenium

如果我们谈论Protractor和Selenium的结合,Protractor可以与Selenium服务器合作,提供自动测试基础设施。 基础设施可以模拟用户与正在浏览器或移动装置中的单体应用的互动。 如以下图表所示,反应堆和ium的结合可分为三个部分,即测试、服务器和浏览器。

Protractor with Selenium

Selenium WebDriver Processes

正如我们在上述图表中看到的那样,使用Selenium网络驱动器进行的测试涉及以下三个过程:

    The test scripts

    The server

    The browser

本节让我们讨论这三个进程之间的沟通。

Communication between Test Scripts & Server

前两个过程——测试文字和服务器——之间的通信取决于Selenium服务器的工作。 换言之,我们可以说, Sel服务器的运行方式将为测试稿和服务器之间的通信过程提供形状。

冶炼服务器可以作为独立的Selenium服务器(sel-server-standalone.jar)在当地运行,也可以通过服务(uce实验室)远程运行。 如果是独立的化石服务器,则在Node.js和 se服务器之间将有一个网上通信。

Communication between the server and the browser

我们知道,服务器负责在从测试稿中解释同一内容后向浏览器发送指挥。 因此,服务器和浏览器也需要一个通信媒介,在此,通信是在JSON网络驱动器议定书>的帮助下进行的。 浏览器向Browser司机提供,用来解释指挥。

可在以下图表的帮助下理解上述关于 Sel网络驱动器程序及其通信的概念:

Web Driver processes

在与第一期测试文件——Protractor合作的同时,也就是使用Node.js进行测试,但在对浏览器采取任何行动之前,它将发出额外指挥,以确保正在测试的申请得到稳定。

Setting up Selenium Server

Sel服务器在我们测试稿和浏览器司机之间充当代理服务器。 它基本上把指挥从我们的测试稿转至网络司机,并将网络司机的答复退回到我们的测试稿。 建立了Selenium服务器的备选办法如下:conf.js。 试卷——

Standalone Selenium Server

如果我们想要在我们的当地机器上运行服务器,我们需要安装独立的 se服务器。 安装独立的 se服务器的先决条件是JDK(Java Development Kit)。 我们必须在我们的当地机器上安装JDK。 我们可以从指挥线——指挥线——指挥指挥线——来检查。

java -version

现在,我们有手工安装和启用Selenium服务器的选择,或者从测试稿开始。

Instalpng and starting Selenium server manually

为了以人工方式安装和启动Selenium服务器,我们需要使用与Protractor建立起来的网络司机-Manager指挥线工具。 安装和启用 Sel服务器的步骤如下:

第一步是安装Selenium服务器和 Chrome司机。 可以在指挥后进行指挥的情况下进行。

webdriver-manager update

Step 2——接下来,我们需要开始服务器。 可以在指挥后进行指挥的情况下进行。

webdriver-manager start

归根结底,我们需要在编织文档中把 se放在运行服务器的地址。 缺省地址为http:// localhost:4444/wd/hub

Starting Selenium server from a Test Script

对于从试验台开始使用含硫服务器而言,我们需要将以下选择列入我们的组合文件:

    具体说明港口- 我们还需要具体指明港口,用于启动独立的Selenium服务器。 可在汇合文档中通过设置 se港加以具体规定。 停泊港为4444个。

    指挥线备选方案—— 我们还需要确定各种指挥线选择,以通过服务器。 可在汇合文档中通过确定 se。 如果你需要全套指挥清单,则从服务器开始使用-help国旗。

Working with Remote Selenium Server

进行我们测试的另一个选择是远程使用Selenium服务器。 远程使用服务器的先决条件是,我们必须有一个配备服务器服务的账户。 在与Protractor合作的同时,我们对接收服务器的下列服务提供了内在支持:

TestObject

为了将测试目标用作遥远的硫化服务器,我们需要确定测试目标User,即我们的测试目标账户和测试目标Key的用户名称,这是我们的测试目标账户的关键。

BrowserStack

为了利用BrowserStack作为遥远的Selenium服务器,我们需要确定我们的BrowserStack账户和BrowserstackKey的用户名称,即我们BrowserStack账户的APIC钥匙。

Sauce Labs

为了利用Sauce实验室作为遥远的Selenium服务器,我们需要确定我们的Sauce实验室账户和我们的SauceKey的“APIC”用户名称。

Kobiton

为了将科比翁用作遥远的锡兰服务器,我们需要确定我们的科比翁账户和科比特尼凯的用户名称,即我们的科比翁账户的亚普森钥匙。

Directly connecting to Browser Driver without using Selenium Server

进行我们测试的另一个选择是,在没有使用Selenium服务器的情况下,与Browser司机直接联系。 投射器可以直接测试,不使用Selenium服务器,反 Chrome和 Firefox,在汇文档中确定直接Connect:真实。

Setting up the Browser

在配置和设立浏览器之前,我们需要知道哪些浏览器得到发射台的支持。 下面是获得校长支持的浏览器清单。

    ChromeDriver

    FirefoxDriver

    SafariDriver

    IEDriver

    Appium-iOS/Safari

    Appium-Android/Chrome

    Selendroid

    PhantomJS

为了建立和配置浏览器,我们需要把探测器的档案整理起来,因为浏览器的安装是在编织文档的能力目标范围内进行的。

Setting up Chrome

为了建立 Chrome湖,我们需要确定以下能力目标:

capabipties: {
    browserName :  chrome 
}

我们还可以添加 Chrome-Specific 备选办法,这些选择可在以下网站看到::https://sites.google.com/a/chromium.org/chromedriver/capabipties

例如,如果你想在上任时添加PS-counter,那么可以在汇簿中作如下改动:

capabipties: {
    browserName :  chrome ,
    chromeOptions : {
       args : [ show-fps-counter=true ]
   }
},

Setting up Firefox

为了建立“增长者”——我们需要把能力目标确定如下:

capabipties: {
    browserName :  firefox 
}

我们还可以在 mo中添加 Firefox星号:火f氧化物及其全部清单见

例如,如果你想以安全的方式来进行“你”的测试,那么它就能够做到如下:

capabipties: {
    browserName :  firefox ,
    moz:firefoxOptions : {
      args : [ —safe-mode ]
   }
},

Setting up other browser

为了建立任何其他浏览器,我们需要在上安装一个单独的双筒。

Setting up PhantonJS

实际上,Phantom 由于其坠毁问题,联合材料不再得到支持。 相反,建议使用无头 Chrome或头 Firefox。 它们可以如下:

为了建立无头,,我们需要以下述无头旗开始 Chrome——

capabipties: {
    browserName :  chrome ,
    chromeOptions : {
       args : [“--headless”, “--disable-gpu”, “--window-size=800,600”]
   }
},

为了建立头盔,我们需要从--less开始。 国旗如下:

capabipties: {
    browserName :  firefox ,
    moz:firefoxOptions : {
       args : [“--headless”]
   }
},

Setting up multiple browsers for testing

我们还可以测试多个浏览器。 为此,我们需要采用以下多种能力配置方案:

multiCapabipties: [{
    browserName :  chrome 
},{
    browserName :  firefox 
}]

Which Framework?

两名BDD(由Behavior驱动的发展)测试框架、Jasmine和Mocha都得到Protractor的支持。 这两个框架都基于 Java和诺杰斯。 这些框架提供了撰写和管理测试所需的辛迪、报告和笔记。

其次,我们看到我们如何能够建立各种框架——

Jasmine framework

这是原告的缺省试验框架。 在安装探测器时,你将携带2X射线。 我们不需要单独安装。

Mocha framework

Mocha是另一个 Java本试验框架,基本上适用于诺德。 为了把Mocha作为我们的试验框架,我们需要利用BADD(Behavior驱动的发展)接口和Chai的主张与Chai As Promised。 可以在以下指挥机构的帮助下安装。

npm install -g mocha
npm install chai
npm install chai-as-promised

如你所看到的那样,例如,在安装 mo时使用这种办法,是因为我们已经使用——g办法在全球安装了探测器。 在安装后,我们需要在我们测试档案中要求并设立Chai。 可以采取以下行动:

var chai = require( chai );
var chaiAsPromised = require( chai-as-promised );
chai.use(chaiAsPromised);
var expect = chai.expect;

在此之后,我们可以利用Chai As Promised,即:

expect(myElement.getText()).to.eventually.equal( some text );

现在,我们需要通过增加“Mocha”框架,确定框架财产,以篡改汇。 “报告”和“s”等备选办法可在汇合文档中添加如下:

mochaOpts: {
   reporter: "spec", slow: 3000
}

Cucumber Framework

为了将Cucumber用作我们的试验框架,我们需要将其与Protractor一起纳入框架选择custom<>。 可以在以下指挥机构的帮助下安装。

npm install -g cucumber
npm install --save-dev protractor-cucumber-framework

如你所看到的那样,例如,在安装Cucumber时使用这一选择,是因为我们已经在全球安装了Protractor,即采用――g办法。 其次,我们需要通过增加框架,将框架财产设定为“底线”和框架。 Path: “Protractor-cucumber-framework” to the config file known cucumberConf.js.

下表所示的样本代码是一份基本的黄色目录文件,可用于与Protractor(Protractor)共同管理黄色特征档案。

exports.config = {
   seleniumAddress:  http://localhost:4444/wd/hub ,

   baseUrl:  https://angularjs.org/ ,

   capabipties: {
      browserName: Firefox 
   },

   framework:  custom ,

   frameworkPath: require.resolve( protractor-cucumber-framework ),

   specs: [
       ./cucumber/*.feature 
   ],

   // cucumber command pne options
   cucumberOpts: {
      require: [ ./cucumber/*.js ],
      tags: [],
      strict: true,
      format: ["pretty"],
       dry-run : false,
      compiler: []
   },
   onPrepare: function () {
      browser.manage().window().maximize();
   }
};
Advertisements