Datadriven Script (MonkeyTalk)
This
basically requires three files all placed in the root folder of your MonkeyTalk
Project.
1. MonkeyTalk code script. This is the one where
you all the automation code.
2. A driver script. This script is the one which
we will run to execute the test. This script just calls the main MonkeyTalk
code script and passes a csv (comma separated value) file with it. Think of
this script as a main method in a java class file which is invoked first and
others are invoked as the thread of main method progresses
3. CSV file.
This file contains all the arguments that you want to pass for each variable in
the driven script. The order of the
Main
MonkeyTalk code script (or the driven script) in MonkeyTalk form:-
Vars *
Define user pass
Input
username Tap
Input
username EnterText ${user}
Input
password EnterText ${pass}
Button LOGIN
Verify LOGIN %thinktime=1000
Button LOGIN
Tap
Label * Verify
"Welcome, ${user}!" %thinktime=3000
Button
LOGOUT VerifyNot LOGIN
Button
LOGOUT Tap %thinktime=5000
Driver
Script in MonkeyTalk form:-
Script
<name_of_driven_script>.mt RunWith <name_of_csv_file>.csv
CSV file:-
user pass
username1,
password1
username2,
password2
username3,
password3
Notice that
the first line (row) in the CSV file is the variable name and the contents of
second row are the values in the variable.
Iterations:
The number of rows in the csv file is the number of times the script is
iterated. So in this case the script is run 3 times. In the first iteration the
csv file passes the value username1 to the user variable and password1 to pass
variable and so on.
Variable
initiation: It does not matter whether the declared variable in the driven
script is initialized or not. Even if the declared variable is initialized with
some value that value will be wiped of that variable during the first iteration
and the new value as mentioned in the script will be assigned to the variable.
This is based on the assumption that the declared variable is mentioned in the
script.
Do I need
mention all the variables in the csv file even if I don’t want to change their
value in each iteration? No. Mention only that variable that you want to
iterate in each iteration.
Leaving a
blank value for a var in csv: Leaving a value blank for a variable in csv file
leaves the variable empty (technically, null). Even if it is the second
iteration the variable does not contain the value provided to it in the first
iteration. This means that the var is wiped off even when there are not values
to be assigned to it the second iteration.
Note: Just
make sure that you hit the play or run button when you are using browsing the
driver script and not the driven script.
Javascript form of the Monkey Script:-
load("libs/<monkey_project_name>.js");
<monkey_project_name>.<driven_script_name>.prototype.run
= function(user, pass) {
this.app.input("username").tap();
this.app.input("username").enterText(user);
this.app.input("password").enterText(pass);
this.app.button("LOGIN").verify("LOGIN",
{thinktime:"1000"});
this.app.button("LOGIN").tap();
this.app.label().verify("Welcome, " + user + "!",
{thinktime:"3000"});
this.app.button("LOGOUT").verifyNot("LOGIN");
this.app.button("LOGOUT").tap({thinktime:"5000"});
Related Articles:-
- Eclipse configuration with Android SDK (Click here…)
- Monkey Talk: Installation of Agent (Click here…)
- Writing script in Monkey Talk (Click here...)
- Simple Login Script (Click here…)
- Passing variable values through driver script (Click here...)
- Conditional statements (Click here…)
- Steps to install Android Apps to SD Card (Click here…)
- Steps to install Android App in Emulator (Click here…)
Comments
Post a Comment