在测试运行期间确定浏览器功能

时间:2016-12-19 16:35:34

标签: angularjs protractor

我需要在量角器测试套件中针对不同的屏幕尺寸进行测试,并在快速搜索后发现这篇文章Run protractor tests with different window sizes?

其中一个答案谈到使用multipleCapabilities配置选项,这看起来是一个很好的简洁方法。

我想知道是否有办法用某种别名或类似命名这些功能,可以在测试期间查询,以便检查测试运行的“模式”,例如小屏幕,大屏幕等等。

目前我有一些名为feature.sm.spec.js,feature.lg.spec.js的测试文件,它们在一个beforeAll()中设置屏幕大小,其中一个测试检查表的响应性因此检查正确的数字列和列标题文本是它们应该是什么。

如果我只能拥有一个测试规范文件并使用其运行的当前屏幕尺寸模式,那将是很好的,期望可以动态地变化,例如,在一些实用程序函数中,所以我只根据已知的屏幕大小检查预期的列。

那里有人做过这种事吗?

干杯

2 个答案:

答案 0 :(得分:1)

我想到的两件事是你可以创建一个不同的测试套件来为每个屏幕大小运行,或者使用命令行参数传递你想要测试的屏幕大小,可以在{{1}中定义您可以使用conf.js对象,并可以使用params在您的规范中访问该值。

如果您只想要一个spec文件,我认为browser.params.YourObjectOrVarHere方法最适合您,但您必须为每个屏幕尺寸运行测试。

答案 1 :(得分:1)

解决问题的简单方法是将屏幕大小作为命令行参数传递,在onPrepare()方法中,您可以根据传递的参数设置浏览器大小。请看下面的示例规范。

exports.config = {
    capabilities: {
        browserName: 'chrome',
    },
    onPrepare: function () {
        if(browser.params.screenSize){
            var width = browser.params.screenSize.split("x")[0]
            var height = browser.params.screenSize.split("x")[1]
            browser.manage().window().setSize(parseInt(width), parseInt(height));
        }else{
           browser.manage().window().maximize();
        }
    },
    params : {
      screenSize : "1420x850" //default screensize
    }
}

在终端中使用以下命令将screenSize作为参数传递。

protractor config.js --params.screenSize 1920x900

现在,浏览器将启动并将屏幕大小设置为1920x900