zoukankan      html  css  js  c++  java
  • MonkyTalk学习-5-TestSuite

    开始研究下什么是MonkeyTalk中Testsuites的概念。

    官方的解释如下:

    You can organize your scripts into tests suites for running and reporting. A test suite is a file with an .mts extenstion that contains at least one test script, and may optionally contain a setup script and a teardown script.

    简单点说,testsuite就是一个集合的概念,可以放很多测试用例在里面。

    一般来说主要包括三方面的内容:

    TestCase,单独的一个测试用例,

    Setup,每个测试用例运行之前,都会运行的用例。

    TearDown,每个测试用例运行结束,都会运行的用例。

    其实这跟Junit3里的测试用例比较类似。

    这次练习中,总共有四个步骤,五个文件,

    第一个文件----Testsuite.mts是一个测试用例集,即一个测试用例的集合,

    此Testsuite中包含了几个类型的文件,

    1. setup-Prepare.mt文件,是一个类似于Junit3中的Setup()的存在

    2. Teardown-Clearup.mt,是一个类似于Junit3中的Teardown()的存在

    3. Test 是两个测试用例,一个需要从user.csv中读取参数,文件位置在这个脚本当前目录中。创建方法参照前一章

    一下是源文件:(只贴出来js的脚本)

    1. Prepare.mt,是准备工作,主要是在登录框中输入Setup(),然后清除

    load("libs/NewDemo.js");
    NewDemo.Prepare.prototype.run = function() {
        /**
         * @type MT.Application
         */
        var app = this.app;
        app.input("username").tap();
        app.input("username").enterText("Setup()");
        app.device().waitFor("20");
        app.input("username").tap();
        app.input("username").clear();
    };

    2. Clearup.mt,是收尾工作,主要是在登录框中输入Teardown(),然后清除

    load("libs/NewDemo.js");
    NewDemo.Clearup.prototype.run = function() {
        /**
         * @type MT.Application
         */
        var app = this.app;
        app.input("username").tap();
        app.input("username").enterText("TearDown()");
        app.device().waitFor("20");
        app.input("username").tap();
        app.input("username").clear();
    };

    3. Login.mt, 是登录1的脚本,需要传递参数username 和 password

    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();
    };

    4. Login2.mt,是登录2的脚本,部需要传递参数,参数是写死的

    load("libs/NewDemo.js");
    NewDemo.Login2.prototype.run = function() {
        /**
         * @type MT.Application
         */
        var app = this.app;
        app.input("username").enterText("login2");
        app.input("password").tap();
        app.input("password").enterText("longin2");
        app.button("LOGIN").tap();
        app.device().waitFor("10");
        app.button("LOGOUT").tap();
    };

    运行的时候,同样需要脸上模拟器,需要App启动,截获录制按钮之后,选中TestSuit.mts,点击播放按钮。

    所有测试完成之后,产生了Junit的测试报告

    同时还有HTML的测试报告

  • 相关阅读:
    URAL 2067 Friends and Berries (推理,数学)
    URAL 2070 Interesting Numbers (找规律)
    URAL 2073 Log Files (模拟)
    URAL 2069 Hard Rock (最短路)
    URAL 2068 Game of Nuts (博弈)
    URAL 2066 Simple Expression (水题,暴力)
    URAL 2065 Different Sums (找规律)
    UVa 1640 The Counting Problem (数学,区间计数)
    UVa 1630 Folding (区间DP)
    UVa 1629 Cake slicing (记忆化搜索)
  • 原文地址:https://www.cnblogs.com/kevinqinan/p/4588857.html
Copyright © 2011-2022 走看看