일부 웹사이트에서는 보고서 내보내기 또는 문서 저장 시 파일 다운로드가 발생합니다.
테스트에서는 파일이 실제로 다운로드되었는지, 파일명이 올바른지, 파일 내용이 예상과 일치하는지 등을 검증하고 싶을 수 있습니다.
이 페이지에서는 다운로드된 파일에 대해 검증(Assertion)하는 기본 코드 예시를 제공합니다.

설정 방법
우선, 파일 다운로드를 트리거하는 테스트 단계(일반적으로 다운로드 링크나 버튼을 클릭하는 클릭 스텝)를 식별하세요.
그 단계 이전에, 다운로드 시작을 기다리는 Playwright 코드 스텝을 추가합니다.
const downloadPromise = page.waitForEvent("download");그 다음, 클릭 스텝 이후에, 다운로드된 파일을 처리하고 검증하는 Playwright 코드 스텝을 추가하세요.
파일 내용 검증
아래 예시는 다운로드된 파일의 내용을 메모리에 불러온 후, 해당 파일 안에 "Q2 report"라는 텍스트가 포함되어 있는지를 검증합니다.
const download = await downloadPromise;
const downloadStream = await download.createReadStream();
const fileContent = await new Promise((resolve) => {
const chunks: Buffer[] = [];
downloadStream.on("data", (chunk) => {
chunks.push(chunk);
});
downloadStream.on("end", () => {
resolve(Buffer.concat(chunks));
});
});
// Example assertion — update this to match your use case
expect(fileContent.toString("utf-8")).toContain("Q2 report");파일 이름 검증
아래 예시에서는 파일 이름에 'Q2 report'라는 문자열이 포함되어 있는지를 어서트(검증)합니다.
const download = await downloadPromise;
// Get the file name
const fileName = download.suggestedFilename();
// Example assertion for the file name
expect(fileName).toContain("Q2 report");위 코드 스니펫은 다양한 방식으로 수정이 가능하며, 다운로드 및 다운로드된 파일과 관련된 다양한 항목들에 대한 검증에 사용할 수 있습니다.
Autify Nexus의 Playwright 스텝에서 어떤 다운로드 관련 동작을 구현할 수 있는지에 대한 더 많은 아이디어는 Playwright 공식 문서를 참고해 주세요.
하나의 시나리오에서 여러 번 다운로드 검증을 수행하는 경우
하나의 시나리오 내에서 파일 다운로드 검증을 2회 이상 수행하는 경우, 그대로 두면 2회째 이후의 검증이 올바르게 동작하지 않을 수 있습니다. 이는 Playwright의 page.waitForEvent("download")가 한 번 이벤트를 감지하면 완료되어 버려, 첫 번째 다운로드 정보를 계속 참조하기 때문입니다.
새로 다운로드한 파일에 대해 올바르게 어설션(내용 일치 확인)을 수행하려면, 두 번째 다운로드를 트리거하는 스텝(다운로드 등 클릭) 직전에 다시 다운로드 이벤트를 기다리는 코드를 추가해야 합니다.
다음 절차에 따라 수정하십시오.
2회째 이후의 다운로드를 수행하는 스텝(요소 클릭 등)의 직전에 Playwright 코드 스텝을 삽입하십시오.
다음 코드를 작성하여
downloadPromise를 재정의하십시오.
// const는 붙이지 않고 작성하십시오
downloadPromise = page.waitForEvent("download");FAQ
리플레이 시 다운로드하는 파일의 파일명이 변경되는 이유는 무엇인가요?
Playwright의 사양입니다.
다운로드한 파일명을 확인하고 싶은 경우, 위에서 언급한 suggestedFilename()을 사용하여 검증할 수 있습니다.