I'm quite new to Appium and testing. I want to write my first tests for Appium in Java using Eclipse and JUnit.
I have already written a simple test that does nothing. It compiles so far but I don't know what's going on...
I want to know how the tests work in general. I already have some experience in programming and therefore some actions going on are a bit strange to me :).
For example: As far as I can see all test layouts look like this:
public class AppiumIOSTest {
private WebDriver driver;
@Before
public void setUp() throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName", "ios");
capabilities.setCapability("platformVersion", "9.2");
capabilities.setCapability("deviceName","iPhone 6");
capabilities.setCapability("app", "TestApp.app");
driver = new RemoteWebDriver( new URL( "http://127.0.0.1:4723/wd/hub" ), capabilities );
}
@After
public void tearDown() throws Exception {
driver.quit();
}
@Test
public void testScriptGoesHere() throws Exception {
}
}
But where can I find documentation that tells me to write a test layout like this. I mean, why is setUp()
called first - and from where?
Do I need a constructor and destructor?
Why is testScriptGoesHere()
called and what about if I have more than just one test?
How do I have to access the UI elements in the app? What's good practice and which methods I should not use?
So I would like to have any documentation that I can use. So far I haven't found anything on Google but maybe my keywords don't match...?
Greets.
Hey I have done some work with Appium and like that it took a while to get used to it.
First off this Appium tutorial was a big help and also I found this tutorial on JUnit also to be very helpful
One thing to note the important thing in your code is the annotations @Before
, @After
etc are the most important, and not the name of the method setUp()
.
The setUp()
method runs before every test, because of the @Before
annotation and you always have to include the capabilities of the device - device name, version, platform name and the link/name of the app to be tested. These then have to be linked to the appium server.
The testScriptGoesHere()
method is ran because of the @Test
annotation and this is where you would include the code that automates the process of going through the app - for example logging in, navigating through activities etc.
You can have multiple @Test
methods and each would be run through each time the program is ran.
I personally purchased this and found it a great help.
There is no constructor or deconstructor needed as the JUnit tests are ran due to the annotations.
To test native Android apps, I have used UIAutomatorViewer to access the elements. For Hybrid apps I have used the Google Chrome console and iOS apps I used Xcode to view the elements.