本文主要讲解JS中的script使用。
1、Javascript Wrapper Library ——JS的包库
每次保存.mt脚本,MonkryTalk IDE自动生成一个JavaScript函数的包装,让您可以从JavaScript干净,直接调用你的脚本。生成的库称为YourProjectName.js,并存储在项目的libs目录。此目录还包含了MonkeyTalk的JavaScript API文件MonkeyTalkAPI.js。
例如:
# enterName.mt
Vars name="foo"
Input name EnterText ${name}
Button OK Tap
当保存该文件时,一个函数将会生成,那么在JS中可以看到
this.app.enterName().run("bar")
或者
this.app.enterName().runWith("somedata.csv")
call功能也会生成,而且定义了预期的参数。
类似的自定义命令生成的包装。
// Call user.login.mt
this.app.user("ethel").login("secret123");
2、Using The JavaScript API——使用JS API
可以调用MonkeyTalk任何Run或者RunWith的JS。monkeytalk必须通过导入该项目的包装库开始。
例如:
load("libs/YourProjectName.js")
每个monkeytalk命令就可以调用以下形式的JS表达式:
this.app.componentType("monkeyId").action(args...)
导入的库会创建一个名为this.app的属性,它是一个对象,它可以引用应用程序进行测试。this.app提供智能式访问组件。对每种组件类型(包括用户定义的)的函数被定义,调用这些函数与monkeyld检索相应的组件。
例如:
// The OK Button
this.app.button("OK")
// The first table
this.app.table("#1")
一旦检索到一个组件,你可以对其执行操作,每个组件对象具有相应于每个可用的动作的功能。
例如:
// Button OK Tap
this.app.button("OK").tap()
// Table countries Select France
this.app.table("countries").select("France")
// Input name EnterText Bob
this.app.input("name").enterText("Bob")
Timeout and Thinktime
超时和思考时间被指定为一个JavaScript对象的属性包括可选的动作后,字符串值的参数。
例如:
this.app.button("ok").tap({timeout:5000})
this.app.input("name").verify("foo", {timeout:5000})
Verify Commands
验证命令和其他的动作一样,例如:验证标签的文字
this.app.label("message").verify("Hello")
Calling MonkeyTalk from JavaScript
在APP的函数中,可以根据脚本的名字来调用它,例如:
this.app.scriptName().run(args...)
this.app.script("scriptName").runWith("somedata.csv");
Calling Custom Commands
特制命令也可以被调用,例如:
// Call user.login.mt
// User ethel Login secret123
this.app.user("ethel").login("secret123")