Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Automated tests 用木偶机进行多用户e2e测试_Automated Tests_Puppeteer_E2e Testing_Functional Testing - Fatal编程技术网

Automated tests 用木偶机进行多用户e2e测试

Automated tests 用木偶机进行多用户e2e测试,automated-tests,puppeteer,e2e-testing,functional-testing,Automated Tests,Puppeteer,E2e Testing,Functional Testing,我正在寻找一种产品,它允许我模拟/测试多个(两个以上)用户,每个用户都登录到他们的帐户,使用一个web应用程序 在测试中有多个用户并不像压力测试那样模拟高负载;也不是为了缩短并行测试的测试时间。原因是要测试当用户彼此交互时应用程序是否正常运行 因此,基本上每个用户都有自己的会话cookie,通过ajax或普通的GET和POST请求发送 每个用户都可以生活在单独的窗口中,或者在单个页面上的iframe中 通过阅读这些问题,我无法确定这在最新版本的《木偶演员》中是否可行。这能实现吗 问题: 如

我正在寻找一种产品,它允许我模拟/测试多个(两个以上)用户,每个用户都登录到他们的帐户,使用一个web应用程序

在测试中有多个用户并不像压力测试那样模拟高负载;也不是为了缩短并行测试的测试时间。原因是要测试当用户彼此交互时应用程序是否正常运行

因此,基本上每个用户都有自己的会话cookie,通过ajax或普通的GET和POST请求发送

每个用户都可以生活在单独的窗口中,或者在单个页面上的iframe中

通过阅读这些问题,我无法确定这在最新版本的《木偶演员》中是否可行。这能实现吗

问题:


如果我理解正确,您需要对此类情况进行一些e2e测试吗

我使用Puppeter作为测试框架+Jest作为测试运行者(都更新到了最新版本)。在一些测试套件中,我有3个以上的测试用例,其中我需要在不同的浏览器中分别登录用户+一些测试用例,其中两个不同的用户相互交互

例如,您可以使用以下内容创建不同的页面:

const createIncognitoPage = async () => {
    const newPage = await page
        .browser()
        .createIncognitoBrowserContext()
        .then(c => c.newPage());
    return newPage;
};
之后,您可以在测试套件中使用它:

let clientPage: Page;

    it('waitForClientElement', async () => {
        clientPage = await createIncognitoPage();
        clientpage.goto('url')
        clientPage.waitFor(element);
     
    });

let adminPage: Page; 

    it('waitForSomeoneAnotherElement', async () => {
        adminPage = await createIncognitoPage();
        await adminPage.goto('adminpageUrl'
     
    });

// then you can iterate between created pages and close em if needed
这是一个非常简单的例子。您可以在页面和等之间进行迭代。也可以在
beforeAll
块中创建页面。希望这会有帮助