Saltar al contenido principal
Página

Tema 3.1 - Primera prueba automatizada con Appium + TestNG

Primera prueba automatizada utilizando Appium, eclipse y TestNG


Lo primero que realizaremos será iniciar el servidor Appium, abrimos el aplicativo de appium y nos dirigimos a la pestaña “Advanced”




Configuramos los siguientes campos:

  • Server Address –> 0.0.0.0
  • Server Port –> 4723
  • Allow Session Override –> Activamos esta casilla

damos clic en “Start Server




Ahora abrimos el entorno de desarrollo en este caso utilizaremos eclipse, creamos un nuevo proyecto y en este creamos una nueva clase java




Una vez creado el proyecto y la clase, importamos la librería de TestNG con la siguiente línea de código:

import org.testng.annotations.*;





 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import org.testng.annotations.*;

public class Appium_Test {
 @BeforeMethod
 public void beforeMethod() {
 }

 @Test
 public void nombreTest() {
 }
 
 @AfterMethod
 public void afterMethod() {
 }
}

Es hora de escribir nuestro Test, a continuación, podrá obtener el código de ejemplo el cual contiene varios @Test sobre la aplicación que estamos trabajando, en este caso sobre la calculadora, en total 4 test que realizan diferentes pasos en el aplicativo


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
public class Instalar_App {

	
	AndroidDriver<WebElement> driver;
		
		
		@BeforeClass
		public void setup() throws MalformedURLException{
			
		URL url = new URL("http://127.0.0.1:4723/wd/hub");
		
		DesiredCapabilities dc = new DesiredCapabilities();
		
		//Establecemos el nombre para la automatizacion
		dc.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium");
		//Establecemos el nombre de la plataforma sobre la cual trabajaremos
		dc.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
		//Establecemos la version de la plataforma a utilizar, en este caso Android 9.0
		dc.setCapability(MobileCapabilityType.PLATFORM_VERSION, 9.0);
		//Establecemos el nombre del dispositivo a utilizar, ya sea emulador o no
		dc.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");

		dc.setCapability("appPackage", "com.android.calculator2");
		dc.setCapability("appActivity", "com.android.calculator2.Calculator");
		
		driver = new AndroidDriver<WebElement>(url, dc);
		driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
		
		}
		//driver
		 
	
		@Test
		public void testSuma() throws Exception {
		
		driver.findElementById("com.android.calculator2:id/digit_7").click();
		driver.findElementById("com.android.calculator2:id/op_add").click();
		driver.findElementById("com.android.calculator2:id/digit_4").click();
		driver.findElementById("com.android.calculator2:id/eq").click();
		String resultadoOperacion = driver.findElementById("com.android.calculator2:id/result").getText();

		assert resultadoOperacion.equals("11"):"Actual value is : "+resultadoOperacion+" did not match with expected value: 11";
		}
		
		@Test
		public void testResta() throws Exception {
		
      		driver.findElementById("com.android.calculator2:id/digit_5").click();
		driver.findElementById("com.android.calculator2:id/op_sub").click();
		driver.findElementById("com.android.calculator2:id/digit_2").click();
                driver.findElementById("com.android.calculator2:id/eq").click();
		String resultadoOperacion = driver.findElementById("com.android.calculator2:id/result").getText();

		assert resultadoOperacion.equals("3"):"Actual value is : "+resultadoOperacion+" did not match with expected value: 3";
		}
		
		@Test
		public void testMultiplicacion() throws Exception {
			
       		driver.findElementById("com.android.calculator2:id/digit_6").click();
		driver.findElementById("com.android.calculator2:id/op_mul").click();
		driver.findElementById("com.android.calculator2:id/digit_4").click();
        	driver.findElementById("com.android.calculator2:id/eq").click();
		String resultadoOperacion = driver.findElementById("com.android.calculator2:id/result").getText();

		assert resultadoOperacion.equals("24"):"Actual value is : "+resultadoOperacion+" did not match with expected value: 24";
		}
		
		@Test
		public void testLetras() throws Exception {
		
        	WebElement Texto = driver.findElementById("com.android.calculator2:id/formula");
        	Texto.click();
        	Texto.sendKeys("QV");
		driver.findElementById("com.android.calculator2:id/op_mul").click();
		driver.findElementById("com.android.calculator2:id/digit_4").click();
        	driver.findElementById("com.android.calculator2:id/eq").click();
		String resultadoOperacion = driver.findElementById("com.android.calculator2:id/result").getText();
		driver.findElementById("com.android.calculator2:id/formula").clear();
		
		assert resultadoOperacion.equals("Bad expression"):"Actual value is : "+resultadoOperacion+" did not match with expected value: Bad expression";
		}
		
		@AfterClass
		public void teardown(){
			driver.quit();
		}
	

}


Para ejecutar el Test damos clic derecho sobre el código > Clic a Run AsClic TestNG Test




Última modificación: lunes, 11 de mayo de 2020, 22:26