【问题标题】:Is data driven testing possible with protractor?量角器可以进行数据驱动测试吗?
【发布时间】:2014-10-20 13:24:57
【问题描述】:

我想要实现的是量角器测试从单独的数据文件(例如 CSV、JSON 等)中提取数据,这样我就可以更改数据而无需接触测试脚本代码。

Protractor 可以做到这一点吗?

【问题讨论】:

    标签: angularjs automation protractor


    【解决方案1】:

    您可以使用browser.params 读取自定义测试数据。

    要从 JSON 文件中读取,只需将 params 添加到您的 config file

    exports.config = {
      params: require('./your-params-file.json'),
    };
    

    NodeJS 会自动将 JSON 文件转换为 Javascript 对象,您可以通过 browser.params.whateverYourJSONHas 从任何测试轻松访问该对象。

    如果您确实需要使用 CSV,请尝试使用 csvtojson 或 google 之类的解析器/打开另一个关于“NodeJS 将 CSV 文件转换为 POJO 数组”的问题

    【讨论】:

    • 谢谢!我会调查这个
    • @RustyWizard 如果这是适合您的解决方案,您可以将其标记为已回答。它变成绿色,其他用户知道有人确认它正在工作,并且 elgalu 得到一些像素点;)
    • @elgalu 我一定会这样做的。在我发布这个问题后不久,我得到了一个更高优先级的任务分配给我。完成后我会尽快调查。
    • 我之前是在回复@nilsK;抱歉,如果它引起任何混乱。也就是说,谢谢@elgalu。你的回答确实有帮助。但是,我没有在配置文件中指定它,而是在规范文件中将其指定为browser.params = require('../data.json');,因为我觉得这将使我能够灵活地将不同的文件关联到不同的规范文件,而不是将所有内容存储在一个文件中并读取整个特定文件。有没有更好的方法来解决这个问题?
    • @RustyWizard:您的方法似乎对我有益。但是,当我尝试使用 browser.params = require('../data.json');在我的测试文件中,我真的无法让它适用于不同测试的不同数据文件!您是否为不同的测试使用不同的数据文件?
    【解决方案2】:

    我不确定您是否能够解决这个问题。但是,我能够做到这一点。

    您的 json 可能如下所示:

    [ 
        {
            "someId": "signInInput",
            "sendSomeKeys": "j@j.com"
        },
        {
            "someId": "passwordInput",
            "sendSomeKeys": "password"
        }
    ]
    

    下面是如何在你的测试中实现它:

    'use strict';
    
    var testData = require('./path/to/json.json');
    
    describe('your test', function() {
        testData.forEach( function (data) {
            it('should read from an external json', function(){
                element(by.id(data.someId)).sendKeys(data.sendSomeKeys);
            });
        });
    });
    

    【讨论】:

      【解决方案3】:

      您可以简单地使用 javascript "map" 函数进行迭代,而无需任何循环:

      var testParams = testConfig.testArray;
      
      testParams.map(function(testSpec) {
          it('write your test here', function() {
              //test code here
          });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-18
        • 1970-01-01
        相关资源
        最近更新 更多