我是量角器的新手。谁能指导我使用量角器进行数据驱动的测试。下面是代码,配置文件和testdata.json文件。
'use strict'; var testData = require('../example/Test Data/Test.json'); describe('LoginPage', function() { var loginData = require('../example/Test Data/Test.json'); testData.forEach(function (data) { it("data.description", function (data) { browser.get("http://127.0.0.1:8080/#/login"); element(by.model("username")).sendKeys(data.username); element(by.model("password")).sendKeys(data.passwordField); element(by.buttonText("Authenticate")).click(); }); }); });
配置文件:
// An example configuration file. exports.config = { directConnect: true, //seleniumAddress: 'http://localhost:4444/wd/hub', // Capabilities to be passed to the webdriver instance. capabilities: { 'browserName': 'chrome' }, // Framework to use. Jasmine is recommended. framework: 'jasmine', // Spec patterns are relative to the current working directory when // protractor is called. specs: ['Testpage.js'], // Options to be passed to Jasmine. jasmineNodeOpts: { defaultTimeoutInterval: 30000 } };
Json文件:
[ { "username": "admin", "passwordField": "admin" }, { "username": "admin1", "passwordField": "admin2" } ]
问题是它不是在获取数据,而是在所有输入框中写入未定义的内容。请帮忙
我假设它是一个 对象数组 ,您可以迭代每个数组元素并直接访问其内容,而您不需要的话testdata.forEach(),可以尝试如下操作:
testdata.forEach()
'use strict'; var testData = require('../example/Test Data/Test.json'); describe('LoginPage', function() { it("data.description", function () { browser.get("http://127.0.0.1:8080/#/login"); element(by.model("username")).sendKeys(testData[0].username); element(by.model("password")).sendKeys(testData[0].passwordField); element(by.buttonText("Authenticate")).click(); }); }); });
我尚未测试以上代码,因此您应该使用 Page Objects, 而不是在测试中直接使用它们!