量角器数据驱动 - 显示未定义的'当我尝试打印JSON文件时

时间:2017-03-28 00:04:34

标签: javascript json automation protractor data-driven-tests

我正在使用量角器,并尝试实施数据驱动。

我正在使用我在谷歌搜索的代码。

这是我的 test.json

{
"username":"testusername"
}

我从我的规范中调用此 json 并尝试在控制台中打印:

var fs = require('fs');
var content = fs.readFileSync('test/e2e/tests/test.json');
console.log(content.username);

测试没有失败,但在控制台中打印未定义

enter image description here

我错过了什么?或者我没有很好地实施json? 希望你能帮帮我。

3 个答案:

答案 0 :(得分:1)

您只需要执行require(json_file_path)。它会工作。请尝试以下代码。

var content = require('test/e2e/tests/test.json');
console.log(content.username);

答案 1 :(得分:0)

您没有解析JSON。 readFileSync确实将文件读为字符串。所以content是一个包含JSON的字符串,而不是一个Object。

解决方案是简单使用JSON.parse

var content = JSON.parse(fs.readFileSync('test/e2e/tests/test.json'));

答案 2 :(得分:0)

尝试此解决方案。

  1. 在主要规格上:

    var testData = require('./Data.json');  
    describe('...', function() {
    
        testData.forEach( function (data) {
    
            var strUser = data.strUser;  
            var strPass = data.strPass;
    
            it('...', function() {
                <code here>
            });
    
        });
    
    });
    
  2. 在Data.json上(与Main规范位于同一文件夹中):

    [{
        "strUser": "user1",
        "strPass": "pass1"
    },
    {
        "strUser": "user2",
        "strPass": "pass2"
    },
    {
        "strUser": "user3",
        "strPass": "pass3"
    }]
    
  3. 希望有所帮助:)