Functional testing NativeScript with Appium and Jasmine


I’m new to Appium. I decided to dig into Appium because, from my understanding, the NativeScript team uses it. I have an app that I’m building with NativeScript. I would like to write my functional tests using Jasmine. However, I have not found an example of testing a NativeScript app via Appium. For example, I have the following:


<Page xmlns="" loaded="pageLoaded">
  <GridLayout columns="*, *" rows="auto, auto, auto, auto, auto, auto" marginLeft="8" marginRight="8">
    <Border backgroundColor="red" row="0" col="0" colSpan="2">
      <Label text="{{ errorMessage }}" />
    <Label text="Username" row="1" col="0" class="label" colSpan="2" />
    <Border borderWidth="1" borderColor="#000" row="2" col="0" colSpan="2">
      <TextField text="{{ username }}" hint="username" />

    <Label text="Password" row="3"  col="0" class="label" colSpan="2" />
    <Border borderWidth="1" borderColor="#000" row="4" col="0" colSpan="2">
      <TextField text="{{ password }}" hint="password" secure="true" />      

    <Button text="Login" tap="loginButton_Tap" row="5" col="0" />


var LoginViewModel = require('./loginViewModel');
var frameModule = require("ui/frame");

var viewModel = new LoginViewModel();
function pageLoaded(args) {
    var page = args.object;
    page.bindingContext = viewModel;
    page.actionBar.title = 'Login';
exports.pageLoaded = pageLoaded;

function loginButton_Tap(args) {
exports.loginButton_Tap = loginButton_Tap;


var observable = require("data/observable");

function LoginViewModel() {
	this.errorMessage = 'Oops';	
LoginViewModel.prototype = new observable.Observable();
LoginViewModel.prototype.authenticateUser = function() {
  if(this.username.length === 0) {
    this.errorMessage = 'Where is your username?';
  this.errorMessage = 'Not connected to internet.';
module.exports = LoginViewModel;

I would love to figure out how to test my login page using Appium with Jasmine. Yet, I’m totally lost at this point. I have two big challenges that are throwing me for a loop:

  1. How to start a test from gulp. I know how to run Jasmine tests from Gulp. However, I can’t figure out how to do it with Appium.
  2. How to actually interact with the elements on the screen. For example, how do I enter values into the form and click the button with an automated test using Appium.

Thank you for any insights.