[java] TestNG를 사용한 모바일 애플리케이션 테스트
TestNG는 자바 기반의 테스트 프레임워크로서, 모바일 애플리케이션 테스트에 매우 유용하게 사용될 수 있습니다. TestNG는 JUnit에 비해 더 많은 기능과 유연성을 제공하며, 복잡한 테스트 시나리오를 효과적으로 관리할 수 있습니다.
환경 설정
- Java를 설치합니다.
-
TestNG를 프로젝트에 추가합니다.
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.0.0</version> </dependency>
- 모바일 테스트를 위한 디바이스 또는 에뮬레이터를 설정합니다.
테스트 클래스 작성
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를 활용하여 안정적이고 품질 높은 모바일 애플리케이션을 개발할 수 있습니다.
참고 자료: