[java] TestNG를 사용한 파일 업로드 및 다운로드 테스트

TestNG는 Java 기반의 테스트 프레임워크로, 파일 업로드 및 다운로드와 같은 기능을 테스트하고 검증하는 데 유용하게 활용할 수 있습니다. 이번 블로그 포스트에서는 TestNG를 사용하여 파일 업로드 및 다운로드를 테스트하는 방법에 대해 알아보겠습니다.

파일 업로드 테스트

첫 번째로, 파일 업로드를 테스트하는 방법에 대해 알아보겠습니다. TestNG를 사용하여 파일 업로드를 테스트할 때는 WebDriver를 사용하여 웹 애플리케이션에 파일을 업로드하는 흐름을 구현해야 합니다. 다음은 TestNG와 WebDriver를 사용한 파일 업로드 테스트의 예시입니다.

@Test
public void fileUploadTest() {
    WebDriver driver = new ChromeDriver();
    driver.get("http://example.com");
    
    WebElement fileInput = driver.findElement(By.id("fileInput"));
    // 파일 경로 지정
    String filePath = "C:/example/file.txt";
    fileInput.sendKeys(filePath);
    
    driver.findElement(By.id("uploadButton")).click();
    
    // 업로드된 파일 확인 로직
    // ...
    
    driver.quit();
}

위의 코드 예시에서는 WebDriver를 사용하여 “fileInput”이라는 id를 가진 엘리먼트를 찾고, 파일 경로를 입력한 후 “uploadButton”을 클릭하여 파일을 업로드합니다. 이렇게 하면 파일 업로드 테스트가 완료됩니다.

파일 다운로드 테스트

두 번째로, 파일 다운로드를 테스트하는 방법에 대해 알아보겠습니다. TestNG를 사용하여 파일 다운로드를 테스트할 때는 WebDriver를 사용하여 다운로드 버튼을 클릭한 후, 다운로드된 파일을 로컬에 저장하는 로직을 구현해야 합니다. 다음은 TestNG와 WebDriver를 사용한 파일 다운로드 테스트의 예시입니다.

@Test
public void fileDownloadTest() {
    WebDriver driver = new ChromeDriver();
    driver.get("http://example.com");
    
    driver.findElement(By.id("downloadButton")).click();
    
    // 다운로드 완료를 기다리는 로직
    WebDriverWait wait = new WebDriverWait(driver, 10);
    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//span[contains(text(), 'Download Complete')]")));
    
    // 다운로드된 파일 저장
    String downloadPath = "C:/example/downloads";
    File downloadedFile = new File(downloadPath + "/file.txt");
    
    // 파일 다운로드 확인 로직
    // ...
    
    driver.quit();
}

위의 코드 예시에서는 WebDriver를 사용하여 “downloadButton”을 클릭한 후, 다운로드가 완료되기까지 대기합니다. 그리고 다운로드된 파일을 “downloadPath” 변수에 저장하여 확인할 수 있습니다.

마무리

TestNG를 사용하여 파일 업로드 및 다운로드를 테스트하는 방법을 알아보았습니다. 위의 예시 코드를 참고하여 테스트 시나리오에 맞게 수정하여 사용할 수 있습니다. TestNG는 다양한 기능을 제공하므로, 파일 업로드 및 다운로드 외에도 다른 테스트 시나리오에 유용하게 활용할 수 있습니다.

References