开始研究下什么是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的测试报告