数据驱动测试未传递 1 个参数
Data Driven test not passing 1 parameter
1。我的登录页面模型:
import {Selector,t} from "testcafe"
class LoginPage{
constructor(){
this.email= Selector("#email")
this.password= Selector("#password")
this.loginButton =Selector(".new-button")
this.link= Selector("a").withText("Welcome, System Administrator")
this.onscreenmessage = Selector("#main > div.notification.notification-error > div > p")
}
async login(username, password){
var that = this;
await t.typeText(that.email, username)
.typeText(that.password, password)
.pressKey("enter")
.expect(this.link).ok()
console.log("User is able to login successfully")
}
}
export default LoginPage
2。我的登录数据集
[
{
"testcasename:": "Test for Non Existing User by username",
"loginusername": "TestUser",
"loginpassword": "I love TestCafe!",
"onscreenmessage": "Invalid Login or password."
},
{
"testcasename:": "Test for Non Existing User by email",
"loginusername": "OliviaPeyton@abc.com",
"loginpassword": "TestCafe is awesome!",
"onscreenmessage": "Invalid Login or password."
},
{
"testcasename:": "Test for Valid User and invalid password",
"loginusername": "Demopreview_admin",
"loginpassword": "TestCafe is awesome!",
"onscreenmessage": "Invalid username/email or password."
}
]
3。以下是我的测试的编写方式 - 基本上遍历 json 文件,并希望看到测试用例名称显示在日志中。但是把它当作undefined.
import { Selector } from 'testcafe';
import {login} from "../helper"
import LoginPage from "../page-object/Login-Page"
const dataSet = require('../test/testdata/login.json')
fixture `Role based access control`
.page `https://demopreview-qa-test-myplace.net/users/sign_in`
const LoginPage = new LoginPage()
dataSet.forEach(userdata => {
test('Executing Tests '${data.testcasename'}', async t => {
await LoginPage.login(userdata.loginusername,userdata.loginpassword);
await t.expect(LoginPage.onscreenmessage.textContent).eql(userdata.onscreenmessage,'Match not found');
});
});
寻找一双眼睛扫视一下,看看我做错了什么。
您的代码中有两个拼写错误:
testcasename:
而不是 .json
文件中的 testcasename
(额外的冒号)。
- 以下代码中的变量名称不正确:
test('Executing Tests '${data.testcasename'}'...
。 data
而不是 userdata
1。我的登录页面模型:
import {Selector,t} from "testcafe"
class LoginPage{
constructor(){
this.email= Selector("#email")
this.password= Selector("#password")
this.loginButton =Selector(".new-button")
this.link= Selector("a").withText("Welcome, System Administrator")
this.onscreenmessage = Selector("#main > div.notification.notification-error > div > p")
}
async login(username, password){
var that = this;
await t.typeText(that.email, username)
.typeText(that.password, password)
.pressKey("enter")
.expect(this.link).ok()
console.log("User is able to login successfully")
}
}
export default LoginPage
2。我的登录数据集
[
{
"testcasename:": "Test for Non Existing User by username",
"loginusername": "TestUser",
"loginpassword": "I love TestCafe!",
"onscreenmessage": "Invalid Login or password."
},
{
"testcasename:": "Test for Non Existing User by email",
"loginusername": "OliviaPeyton@abc.com",
"loginpassword": "TestCafe is awesome!",
"onscreenmessage": "Invalid Login or password."
},
{
"testcasename:": "Test for Valid User and invalid password",
"loginusername": "Demopreview_admin",
"loginpassword": "TestCafe is awesome!",
"onscreenmessage": "Invalid username/email or password."
}
]
3。以下是我的测试的编写方式 - 基本上遍历 json 文件,并希望看到测试用例名称显示在日志中。但是把它当作undefined.
import { Selector } from 'testcafe';
import {login} from "../helper"
import LoginPage from "../page-object/Login-Page"
const dataSet = require('../test/testdata/login.json')
fixture `Role based access control`
.page `https://demopreview-qa-test-myplace.net/users/sign_in`
const LoginPage = new LoginPage()
dataSet.forEach(userdata => {
test('Executing Tests '${data.testcasename'}', async t => {
await LoginPage.login(userdata.loginusername,userdata.loginpassword);
await t.expect(LoginPage.onscreenmessage.textContent).eql(userdata.onscreenmessage,'Match not found');
});
});
寻找一双眼睛扫视一下,看看我做错了什么。
您的代码中有两个拼写错误:
testcasename:
而不是.json
文件中的testcasename
(额外的冒号)。- 以下代码中的变量名称不正确:
test('Executing Tests '${data.testcasename'}'...
。data
而不是userdata