我手动设置认证cookie为我的登录目的,我想在我的测试中共享认证令牌。第一次我必须在测试中执行登录,然后我必须将授权令牌保存在变量中,并在测试文件中共享它。
下面是一段代码片段,解释我正在尝试做什么以及如何做:
登录est.js:
let authToken = null;
fixture`Login test`
.page(inputData.url)
.beforeEach(async (t) => {
const nextMonth = new Date();
nextMonth.setMonth(nextMonth.getMonth() + 1);
await t.navigateTo(inputData.url).then(await setCookie('AUTH_COOKIE_ID', authToken, nextMonth));
});
test
.before(async () => {
await loginPage.login(inputData.firstUserEmailId, inputData.firstUserPassword);
authToken = await getCookie('AUTH_COOKIE_ID');
})('Verify login test', async (t) => {
await loginPage.goToPeople(personName);
await t
.expect(loginPage.personName.exists)
.ok();
});
现在,在测试之后,我有了实际的authToken
(非空),如果我必须在所有文件中的所有测试中共享authToken
变量,那么我该怎么做?通过这种编码设计,我可以在同一个文件(测试套件)中共享authToken
。例如:
我有一个文件,人们est.js:
fixture`People test`
.page(inputData.url)
.beforeEach(async (t) => {
const nextMonth = new Date();
nextMonth.setMonth(nextMonth.getMonth() + 1);
await t.navigateTo(inputData.url).then(await setCookie('AUTH_COOKIE_ID', loginTest.authToken, nextMonth));
});
test('Verify people test', async (t) => {
await loginPage.goToPeople(personName);
await t
.expect(loginPage.personName.exists)
.ok();
});
在上面的测试中,如果我能做loginTest.authToken
,那就太好了。
PS:以防万一,人们想知道为什么我要设置cookie,而不是使用useRole
。只是让你知道useRole
在我的设置中不起作用,因为应用程序在我的本地环境中手动设置cookie,所以我必须手动设置cookie作为登录变通方法。
请参阅提取可重用测试代码收据,了解如何在测试用例之间共享测试代码。
此外,如果您想仅在特定夹具的测试之间共享对象,您可以使用夹具上下文对象:在夹具钩子和测试代码之间共享变量。
例如:
helper.js
var authToken = 111;
function setToken(x) {
authToken = x;
}
function getToken(x) {
return authToken;
}
export { setToken, getToken };
test.js
import { getToken, setToken } from './helper.js'
fixture("test1")
.page("http://localhost");
test('test1', async t => {
console.log('token: ' + getToken());
setToken(111);
});
test1.js
import { getToken } from './helper.js'
fixture("test2")
.page("http://localhost");
test('test2', async t => {
console.log('token2: ' + getToken());
});
另见:
导入
出口
问题内容: 我知道可以在Python中的各个模块之间共享全局变量。但是,我想知道这种可能性的程度以及原因。例如, global_mod.py mid_access_mod.py bot_modif_mod.py 即使所有模块都共享全局变量x,也将打印“无”。为什么会这样呢?似乎x是在mew()分配给bot_modif_mod.py之前在mid_access_mod.py求值的。 问题答案: 发生这
问题内容: 我只想在进程与该进程调用的dll之间共享静态/全局变量。exe和dll在相同的内存地址空间中。我不希望在其他进程之间共享该变量。 问题的阐述: 说是有一个静态/全局变量在。exe 和dll 都具有,因此变量都在两个图像中。 现在,动态加载(或静态)。然后,问题是该变量是否由exe和dll共享。 在Windows中,这两个家伙 永远不会 共享:exe和dll将具有的单独副本。但是,在Li
问题内容: 在我的应用中,公共对象的状态通过发出请求来更改,而响应取决于状态。 如果我在开发服务器上运行此程序,则期望得到1、2、3等。如果同时从100个不同的客户发出请求,会出问题吗?预期结果将是100个不同的客户端各自看到一个从1到100的唯一数字。或者会发生以下情况: 客户端1查询。增加1。 在执行return语句之前,线程将切换到客户端2。再次递增。 线程切换回客户端1,并向客户端返回数字
问题内容: 在我的应用中,公共对象的状态通过发出请求来更改,而响应取决于状态。 如果我在开发服务器上运行此程序,则期望得到1、2、3等。如果同时从100个不同的客户发出请求,会出问题吗?预期结果将是100个不同的客户端各自看到一个从1到100的唯一数字。或者会发生以下情况: 客户端1查询。增加1。 在执行return语句之前,线程将切换到客户端2。再次递增。 线程切换回客户端1,并向客户端返回数字
问题内容: 我对全局变量的工作方式感到困惑。我有一个大型项目,大约有50个文件,并且需要为所有这些文件定义全局变量。 我所做的就是在我的项目main.py文件中定义它们,如下所示: 我尝试过的另一种方法,但也没有用 在subfile.py我里面有这个: 但是同样,它没有用。我应该如何实施呢?我知道当两个文件彼此之间并不真正了解时(子文件不知道主文件),它就不能那样工作,但是如果不使用io编写或pi
问题内容: 假设我想将此变量设为一个常量,以便在Angularjs中的控制器之间共享; 经过一番调查,看来服务是可行的方法。但是最好的方法是什么?我使用工厂,服务,价值还是其他? 下面是来自angularjs-master-seed的services.js; 如何修改它以使其具有在控制器之间可共享的常量$ webroot? 我可以做以下事情吗? 如果可以,如何在控制器中调用它? 问题答案: 如果变