[java] TestNG를 사용한 모바일 애플리케이션 테스트

TestNG는 자바 기반의 테스트 프레임워크로서, 모바일 애플리케이션 테스트에 매우 유용하게 사용될 수 있습니다. TestNG는 JUnit에 비해 더 많은 기능과 유연성을 제공하며, 복잡한 테스트 시나리오를 효과적으로 관리할 수 있습니다.

환경 설정

  1. Java를 설치합니다.
  2. TestNG를 프로젝트에 추가합니다.

    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>7.0.0</version>
    </dependency>
    
  3. 모바일 테스트를 위한 디바이스 또는 에뮬레이터를 설정합니다.

테스트 클래스 작성

import io.appium.java_client.MobileBy;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.*;

import java.net.MalformedURLException;
import java.net.URL;

public class MobileAppTest {
    private AndroidDriver<WebElement> driver;

    @BeforeClass
    public void setUp() throws MalformedURLException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName", "emulator-5554");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("appPackage", "com.example.myapp");
        capabilities.setCapability("appActivity", "com.example.myapp.MainActivity");
        driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    }

    @Test
    public void testLogin() {
        WebElement usernameField = driver.findElement(MobileBy.id("com.example.myapp:id/username"));
        WebElement passwordField = driver.findElement(MobileBy.id("com.example.myapp:id/password"));

        usernameField.sendKeys("username");
        passwordField.sendKeys("password");

        WebElement loginButton = driver.findElement(MobileBy.id("com.example.myapp:id/login"));
        loginButton.click();

        WebElement welcomeMessage = driver.findElement(MobileBy.id("com.example.myapp:id/welcome_message"));
        Assert.assertEquals(welcomeMessage.getText(), "Welcome, username!");
    }

    @AfterClass
    public void tearDown() {
        driver.quit();
    }
}

위의 예제 코드는 모바일 애플리케이션의 로그인 기능을 테스트하는 예시입니다. TestNG에서는 @BeforeClass, @Test, @AfterClass 어노테이션을 사용하여 테스트 환경을 설정하고 테스트 메서드를 작성할 수 있습니다.

테스트 실행

테스트 클래스를 실행하려면 다음 명령을 실행합니다.

mvn test

테스트 결과는 TestNG 리포트를 통해 확인할 수 있으며, 테스트가 성공한 경우 초록색으로 표시되고, 실패한 경우 빨간색으로 표시됩니다.

결론

TestNG를 사용하면 모바일 애플리케이션 테스트를 더욱 효율적으로 수행할 수 있습니다. 다양한 기능과 유연성을 제공하는 TestNG를 활용하여 안정적이고 품질 높은 모바일 애플리케이션을 개발할 수 있습니다.

참고 자료: