Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Testing NativeScript app with Appium

I am learning NativeScript. I am trying to write some automated tests with Jasmine. From my understanding, I can use Appium with Jasmine to run automated tests in the emulator. At this time, I've added the appium-gulp-plugins to my package.son file. I also have a basic JavaScript file with a single test. That file looks like this:

describe('MyApp', function() {
  describe('Login', function() {
    it('should successfuly login', function() {
      // set username field value
      // set password field value
      // click "login" button.
      // get response.
      expect(true).toBe(true);
    });           
  });        
});

I have two challenges:

  1. How do I interact with the NativeScript view from the test?
  2. How do I actually run the tests? As it is right now, its just straight up Jasmine, so I can do the following:

    gulp.src('./path/to/tests.js').pipe(jasmine());
    

However, with Appium in the mix, I'm not sure how to integrate it as part of running my tests.

like image 629
user70192 Avatar asked Jul 20 '15 01:07

user70192


People also ask

Does Appium support native apps?

Appium is an open source test automation framework for use with native, hybrid and mobile web apps. It drives iOS, Android, and Windows apps using the WebDriver protocol.

What is E2E testing?

End-to-end testing, also known as E2E testing, is a methodology used for ensuring that applications behave as expected and that the flow of data is maintained for all kinds of user tasks and processes. This type of testing approach starts from the end user's perspective and simulates a real-world scenario.

What test frameworks are supported by Appium?

Appium does not support test frameworks because there is no need to support them.

Can Appium be used for all my tests?

The answer is No (in general).


2 Answers

Part-1 : Views are created using xml which must have attributes like text,name,css etc. These are accessible using methods like By.name,By.cssSelector etc. depending on the attributes provided during development.

Part-2 : I believe since Appium was built on selenium initially and supports majority of its functionality. You can go ahead and try something similar to this and you can provide action to your suite accessing the objects as in Part-1. To run the tests created would require similar efforts to run your main test script.

like image 99
Naman Avatar answered Oct 21 '22 20:10

Naman


Look this closed issue at github: https://github.com/NativeScript/NativeScript/issues/553

You don't have access to internals of your app :( (when you use appium for tests, but why you don't take a look in KIF, you access elements by using accessibility label or accessibility identifier, it's more simple. Hope helps :)

like image 30
Abner Terribili Avatar answered Oct 21 '22 20:10

Abner Terribili