MonkyTalk学习-4-JS脚本修改运行

JS脚本的修改和运行方面的内容,

1. 导出脚本

在录制完成或者通过Table View界面编辑过之后,会自动生成JavaScript脚本,进入JavaScript的Tab下,可以看出如下的结果

点击Export按钮,会自动生成一个.js文件,内容和在JavaScript 中看到的内容相同。

2. 能做什么

If you want to include common programming structures like flow control, loops, and random number generators, then exporting to Javascript is a good way to do so.

这是官方对于编辑脚本的作用的解释,简单点说,在JS中可以做循环,随机数之类的操作。下面对循环做个例子。

如图

load("libs/NewDemo.js");
NewDemo.Login.prototype.run = function(username, _password) {
    /**
     * @type MT.Application
     */
    var app = this.app;

    username = (username != undefined && username != "*" ? username : "<username>");
    password = (password != undefined && password != "*" ? password : "<password>");

    app.input("username").enterText(username);
    app.input("password").tap();
    app.input("password").enterText(password);
    app.button("LOGIN").tap();
    app.device().waitFor("10");
    app.button("LOGOUT").tap();

};

大概的意思是,之前的操作,从csv文件上读取参数值,调用了Login.mt进行登录和退出,现在要做的是,从JS上实现循环N次操作。

3. 编辑脚本

导出的js脚本就可以编辑了,加上循环语句。因为也没写过js脚本,挑了个最简单的写了

load("libs/NewDemo.js");
NewDemo.Login.prototype.run = function(username, password) {
    /**
     * @type MT.Application
     */
    var app = this.app;
    for(var i =0; i < 5; i ++){
    username = (username != undefined && username != "*" ? username : "<username>");
    password = (password != undefined && password != "*" ? password : "<password>");

    app.input("username").enterText(username);
    app.input("password").tap();
    app.input("password").enterText(password);
    app.button("LOGIN").tap();
    app.device().waitFor("10");
    app.button("LOGOUT").tap();
    }
};

4. 运行脚本

如何运行脚本呢?回到我们的Run.mt,如图

修改图中的MonkeyID中的Login.mt 为 Login 或者Login.js

连接IDE和模拟器,模拟器启动App是必须的

然后运行这个Run.mt就可以了。

经测试,是可以的,确实,在从csv上获得了一组参数之后,就运行了5遍,然后再从csv上获得另外一组参数,再运行五遍,知道三组参数均运行完毕。

5. 随机数的使用。

注:以下代码是从官方网站上看到的。自己试了下,确实可以生成随机数。

if (typeof Test == "undefined") {
    load("libs/NewDemo.js");
};

NewDemo.Test1.prototype.run = function(usr, pwd) {
    usr = usr || randStr();
    pwd = pwd || randStr();

    this.app.input("username").enterText(usr);
    this.app.input("password").enterText(pwd);
    this.app.button("LOGIN").tap();
    this.app.button("LOGOUT").tap();
};

function randStr()
{
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

    for( var i=0; i < 5; i++ )
        text += possible.charAt(Math.floor(Math.random() * possible.length));

    return text;
}
时间: 2024-08-02 15:13:44

MonkyTalk学习-4-JS脚本修改运行的相关文章

使用Js脚本 修改控制IE的注册表相关设置(activex等)

使用Js脚本 修改控制IE的注册表相关设置(activex等) 分类: PHP2012-12-05 18:51 2035人阅读 评论(2) 收藏 举报 脚本写法: <SCRIPT LANGUAGE="JavaScript"><!--var WshShell=new ActiveXObject("WScript.Shell"); //添加信任站点ipWshShell.RegWrite("HKCU\\Software\\Microsoft\\

【javascript】javascript学习之js脚本的解析步骤

将javascript代码加入到HTML代码中,即使用<script>标签的方式有两种:直接嵌入页面中和使用外部js文件. 使用<script>标签嵌入html代码中时,需要指定其类型:type="text/javascript".不过在html5标准中<script>标签的type默认为"text/javascript",可以省略不写,不过考虑到低版本的兼容问题,一般还是加上比较好. 嵌入式js代码: 添加到<script

JS脚本修改控件宽度

var winWidth=0;if (window.innerWidth) { winWidth = window.innerWidth; } else if ((document.body) && (document.body.clientWidth)) { winWidth = document.body.clientWidth; } document.getElementById("wzsl").style.width = winWidth + "px&

Js脚本之jQuery学习笔记(1)

Js脚本之jQuery学习笔记(1) 一.javascript基础 单行注释 多行注释 /* */ 数据类型 数值型 字符串型 布尔型 空值 未定义值 转义字符 函数定义:1234567891011121314<head><script language="javascript"function test(m){var xixi="嘻嘻"alert("这是javascript")document.write(xixi + m)}

linux修改运行中的脚本

工作中经常会遇到,在执行一个脚本时后,觉得有些地方要补充,而这个脚本又已经运行了一段时间,如果从头再来很浪费时间,这时如果能修改这个运行中的脚本就方便多了. 如: cat test.sh #!/bin/bash echo 1111 sleep 60 echo 2222 当开始运行后,如果想修改第二个echo的输出值,怎么办? 直接打开test.sh修改肯定是不行的,这就好比,一个运行中的脚本,你把文件删除了之前,脚本依然可以运行下去一样.这是因为,此时的脚本已经放在了内存里.所以要想修改脚本只能

mongodb 的js脚本或pymongodb脚本修改数据库的字段值

使用 data$ mongo localhost:27017/jd_51job_raw updateName.js --shell js 脚本: updateName.js var cursor = db.getCollectionNames(); for(i=0;i<cursor.length;i++){ if("system.indexes"==cursor[i]||"system.profile"==cursor[i]){ print("Fin

异步执行js脚本——防止阻塞

JS允许我们修改页面中的所有方面:内容,样式和用户进行交互时的行为. 但是js同样可以阻塞DOM树的形成并且延迟页面的渲染. 让你的js变成异步执行,并且减少不必要的js文件从而提高性能. JavaScript可以查询和修改DOM和CSSOM JavaScript的执行阻塞了CSSOM的执行 JavaScript 阻塞了DOM的形成,除非特殊声明js异步执行 js是一个同步语言可以修改网页的任何方面: <html> <head> <meta name="viewpo

JavaScript学习03 JS函数

JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的参数可以任意多个,不用声明变量类型,只用给出变量名: function myFunction(name, job) { 这里是要执行的代码 } 函数返回值 在函数中使用return语句,函数会停止执行,返回调用它的地方. 函数的返回值也不用声明类型,直接返回即可. function myFuncti

Ajax中主页加载分页面后,分页面js脚本不执行的解决办法

没看懂,稍后再看 Ajax中主页加载分页面后,分页面js脚本不执行的解决办法 最近捣鼓JQuery,其中强大的Ajax系列函数令人印象深刻,所以做项目时毫不犹豫地采用了一下该技术,在主页中动态加载分页面进来,咋看效果 不错,都能实现了第一层次的加载,但深入下去问题就出来了:动态加载进来的页面中外联了js文件,其中的脚本却没有在加载后运行! (脚本在单独浏览该分页面时运行是正常的) 我郁闷了,打开Firefox中的Firebug查看了加载后的主页面中的DOM,所有元素的加载都是正常的啊~ 自己改来