携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
前言
- 数据驱动是测试框架中最常用的设计模式了
- 使用数据驱动,可以在不增加代码量的前提下根据数据生成不同的测试策略
策略一:数据通过 JS 的方式创建
describe('测试数据放在前置条件里', function () {
let testDatas = testDatas = [
{'name': 'yy', 'password': 'helloqa'},
{'name': 'age', 'password': 'helloqa2'}]
// 循环生成测试用例
for (const data in testDatas) {
it(`测试外部数据${data}`, function () {
cy.log(testDatas[data].name, testDatas[data].password)
});
}
})
策略二:使用 fixtures(推荐)
直接看我这篇文章就好了:juejin.cn/post/711191…
策略三:数据保存在自定义文件中
// 导入数据文件 example.json,并保存在 testData 变量中
import testData from '../../data/example.json'
describe('数据驱动的栗子', function () {
describe('数据保存在自定义文件中', function () {
for (const data in testData) {
it(`测试外部数据${data}`, function () {
cy.log(testData[data].name, testData[data].body)
});
}
})
})
测试结果
使用 cypress.env.json
前言
- Cypress 允许针对不同测试环境使用多个配置文件并且在运行时动态指定
- 从而免除每切换一次环境,就需要更改环境变量值的情况
具体操作步骤
创建文件夹和文件
- 在 cypress安装目录下创建一个 config 文件夹
- 文件夹下建立两个文件,分别命名为 cypress.dev.json,cypress.qa.json
cypress.dev.json 代码
{
"baseUrl": "http://localhost:7077/login",
"env": {
"username": "jane.lane",
"password": "password123"
}
}
cypress.qa.json 代码
{
"baseUrl": "http://localhost:7077/login",
"env": {
"username": "wrongUser",
"password": "wrongPwd"
}
}
在 cypress 安装目录/plugins/index.js 中更改配置如下
index.js 的代码
测试用例代码
命令行运行 cypress 命令
**
yarn cypress:open --env configFile=qa
- 上述命令打开 cypress 运行器(Test Runner)
- 当然 configFile 作为环境变量可以有多种方式传递,参照一开始的文章哦
查看运行器的配置项
测试结果
点击即可运行测试用例文件
运行时动态指定环境变量
- 上面讲的使用 cypress.env.json 可以指定测试环境运行,但需要额外创建文件
- 除 cypress.env.json 外,在运行时指定测试环境的同时仍然可以使用 cypress.json 文件
cypress.json 代码
"targetEnv": "dev",
"env": {
"dev": {
"username": "iTesting",
"password": "weChat",
"Url": "http://localhost:5883"
},
"qa": {
"username": "wrongUser",
"password": "wrongPassword",
"Url": "http://www.test.com:5883"
}
}
support/index.js 代码
命令行运行 cypress 命令
指定需要运行的测试环境
yarn cypress:open --env testEnv=qa