如何用量角器conf js测试单独的环境名称?

时间:2015-09-30 11:13:24

标签: javascript json selenium selenium-webdriver protractor

[enter image description here

以上图片我运行的量角器Conf.js具有存储在JSON文件中的特定环境名称

如何仅在量角器测试用例中测试特定的环境URL?

2 个答案:

答案 0 :(得分:3)

第一种方法 - 您必须在命令行中使用params变量传递参数。更新您的conf.js文件,以包含名为baseUrl的参数和其他网址变量,如下所示 -

params: {
    baseUrl: "http://default_url" //provide your default url to be used
}

稍后在命令提示符中传递值。这是怎样的 -

protractor conf.js --params.baseUrl 'http://www.google.com'

只要您有代码在规范中获取网址,请使用以下代码 -

browser.get(browser.params.baseUrl);

第二种方法 - 如果您根本不想每次都将网址传递给params对象,那么您可以将它们存储在您的conf.js甚至是specs文件并调用它们。这是一个例子 -

您的conf.js文件 -

params: {
    baseUrl: ""
},
onPrepare: function(){
    switch(browser.params.baseUrl){
      case 'firsturl':
        browser.get("http://firsturl.com"); //replace firsturl with your actual url
        break;
      case 'secondurl':
        browser.get("http://www.secondurl.com");
        break;
      default:
        browser.get("http://www.defaulturl.com");
 }
}

现在通过命令行传递您要使用的网址 -

protractor conf.js --params.baseUrl 'firsturl' //to get first url
protractor conf.js //to open default url

第三种方法 - 如果您遇到运行具有许多规范的测试套件的问题,那么第二种方法就不会起作用。您需要在每个测试规范文件中使用browser.get(),在这种情况下,请使用以下方法 -

更新您的conf.js文件 -

params: {
    baseUrl: "",
    url: ""
},
onPrepare: function(){
    switch(browser.params.baseUrl){
      case 'firsturl':
        browser.params.url = "http://firsturl.com"; //replace firsturl with your actual url
        break;
      case 'secondurl':
        browser.params.url = "http://www.secondurl.com";
        break;
      default:
        browser.params.url = "http://www.defaulturl.com";
 }
}

您的命令行命令 -

protractor conf.js --params.baseUrl 'firsturl' //to get first url
protractor conf.js //to open default url

您的测试规范文件需要包含browser.get()命令。这是怎样的 -

browser.get(browser.params.url);

希望它有所帮助。

答案 1 :(得分:0)

仅在一个地方使用来自json的网址:

var jsonFile = require("./path/to/json/relative/to/currentRunFolder");
urlToUse = jsonFile.url; // or however you stored it.

在任何规范中使用它,您可以在每次运行时更改json文件。我希望我理解正确。

要将参数传递给量角器,请使用--params.jsonFile="./path/to/json/relative/to/currentRunFolder"

并使用browser.params.jsonFile

再次使用它