4)创建测试工程,并导入robotium的jar包编写测试框架和测试用例。
public static void testlogin() throws Exception{ solo.sleep(2000); String appname=solo.getCurrentActivity().getLocalClassName().toString(); System.out.println(appname); // System.out.println(solo.getButton(0).getText()); //System.out.println(solo.getButton(1).getText()); solo.sleep(3000); if (solo.searchButton("退出")){ System.out.println("第二个按钮名称是:"+solo.getButton(1).getText()); solo.clickOnButton("知道了"); } else{ solo.sleep(3000); System.out.println("第二个按钮名称是:"+solo.getButton(0).getText()); solo.clickOnButton(0); solo.waitForActivity("ui.login.LoginActivity",2000); solo.clickOnButton(2); System.out.println(solo.getCurrentActivity().getLocalClassName().toString()); System.out.println("第二个按钮名称是:"+solo.getButton(1).getText()); System.out.println("第三个按钮名称是:"+solo.getButton(2).getText()); assertTrue(solo.searchButton("用户登录"));//检测用户登录按钮 //assertTrue(solo.searchButton("注册"));//检测注册按钮 //assertTrue(solo.isCheckBoxChecked(0));//检测用户登录按钮 } //solo.enterText(0, "123"); //solo.clickonscreen(x.y); //Button button =solo.getButton("登录"); //solo.clickOnButton(1); //System.out.println(button); //solo.clickOnButton("登录"); //solo.sleep(20000); } |
通过以上简单的脚本我们可以看出robotium可以完成的工作有:
● 文本的输入;
● 文本内容的检查;
● 按钮单击;
● activity的检查;
● 空间属性的检查;
● Dialogs、Toasts、Menus和Context Menus的操作和检查。
5、需要克服的问题
1)如果要对被测试的系统做自动化,需要保证被测试的apk包的签名和被测试包的签名完全一致,如果二者不同,被被测试系统不允许测试。
2)在测试实验的过程中发现被测试的程序如果是apk包,button按钮单击事件不给触发,但是在源代码的情况下就可以。
3)在看不到原代码的情况下,对被测试程序的控件属性和activity名称无法获知所以无法做验证。