testcafe icon indicating copy to clipboard operation
testcafe copied to clipboard

regression of video behaviour

Open zoe-jobson-IL opened this issue 3 years ago • 1 comments

What is your Scenario?

this is a continuance of https://github.com/DevExpress/testcafe/issues/7189 we have tried 1.20.1-rc2 and while we are seeing more of the videos that we were in 1.20 we are still loosing the essential ends of videos

What is the Current behavior?

WHen 40 tests (run times from a few seconds to a couple of minutes) are run concurrently (3 or 4 at once) many loose the endings on the video recordings.

What is the Expected behavior?

all videos are complete (as in 1.18 and 1.19)

What is your public website URL? (or attach your complete example)

not relevant

What is your TestCafe test code?

irrelevant (I can provide zipped comparative videos if required)

Your complete configuration file

we have an extensive set of config.js files

Your complete test report

report irrelevant - tests pass correctly

Screenshots

No response

Steps to Reproduce

  1. gather a reasonably sized suite of tests which run for a variety of times, set up video recording, run against headless chrome/chromium
  2. run with concurrency of 3 or 4
  3. watch videos - ones from the middle onwards - especially longer running ones are cut short

TestCafe version

1.20.1-rc2

Node.js version

16.14.2

Command-line arguments

irrelevant - run by internal script

Browser name(s) and version(s)

Version 104.0.5112.81 (Official Build) (64-bit)

Platform(s) and version(s)

windows 11 (1.20 was also failing on alpine)

Other

https://github.com/DevExpress/testcafe/issues/7189

zoe-jobson-IL avatar Aug 04 '22 15:08 zoe-jobson-IL

Hi @zoe-jobson-IL

Thank you for the shared information. I've reproduced the issue with the following example:

testcafe chrome test.js --videos --concurrency 4
import { ClientFunction, t } from 'testcafe';

fixture ('Fixture');

const updateContent = ClientFunction((testNumber, stageNumber) => {
    var h1 = document.createElement('h1');

    h1.textContent = 'Test ' + testNumber + ': ' + stageNumber;

    document.body.appendChild(h1);
});

async function testBody (testNumber) {
    await updateContent(testNumber, '1');
    await t.wait(1000 * testNumber);
    await updateContent(testNumber, '2');
    await t.wait(1000);
    await updateContent(testNumber, '3');
    await t.wait(1000);
}

test('test1', async t => {
    await testBody(1);
});

test('test2', async t => {
    await testBody(2);
});

test('test3', async t => {
    await testBody(3);
});

test('test4', async t => {
    await testBody(4);
});

test('test5', async t => {
    await testBody(5);
});

test('test6', async t => {
    await testBody(6);
});

test('test7', async t => {
    await testBody(7);
});

test('test8', async t => {
    await testBody(8);
});

test('test9', async t => {
    await testBody(9);
});

test('test10', async t => {
    await testBody(10);
});

miherlosev avatar Aug 05 '22 10:08 miherlosev

Release v2.0.1-alpha.1 addresses this.

github-actions[bot] avatar Sep 06 '22 05:09 github-actions[bot]