zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    js点击弹出div层
    图片按比例缩小
    js标题文字向上滚动
    JS刷新当前页面
    图片缩放显示,不变形
    产品叠加搜索
    Oracle中DML基础知识
    Oracle中DDL的基础知识
    Sql多对多关系中外键的应用
    oracle 中sql语句的几个基本函数..
  • 原文地址:https://www.cnblogs.com/kevinqinan/p/4587638.html
Copyright © 2011-2022 走看看