制数据的情况下,测试无法进行得非常深入,只能从个数和名称上进行简单验证。经过对页面的元素分析发现,在该页面没有显示之前TabBar上的页签的name属性是Starred。但当页面展示过后,该页签的name属性是You。在这种情况下,根据name属性直接定位控件会使测试不够稳定,可以先定位其父控件,然后通过父控件的索引关系定位该控件。
通过详细分析并且结合之前的脚本编辑经验,不难得到一个能直接运行成功的测试脚本,完整的测试脚本如下:
test ("查看用户标星项目",
function() {
//点击TabBar.上的第=二个按钮
Finder .findElementsByClassType ("TabBar") [0] .buttons() [1].tap();
//该用户有标星项目,TableView的TableCel1个数应该大于0
var arraylist = Finder .findElementsByClassType ("TableCe11")
Assert. isTrue (arraylist. length > 0);
};
查看标星页面的用户登录按钮,点击该按钮即可完成登出操作。用户登出后,应用程序将回到最初的应用程序开启页面。脚本如下:
test ("用户登出",
function() {
//点击Logout
Finder . findElementByName ("Logout") .tap() ;
waiter .wait4Indicator (15) :
//登出完成以后回到最初的页面,验证Login with GitHub 按钮的存在
Assert.element_ is_ not_ null (Finder . findElementByName ("Login
with GitHub"));
});
总结:由于数据不可控制,测试用例个数比较少,也没有进行更加详细、严格的功能验证。但是,通过以上实践还是可以掌握了一些iOS自动化测试的思路和经验。