两个关于wifi的测试用例02 Uiautomator2+Android Studio

两个关于wifi的测试用例02 Uiautomator2+Android Studio

1 from quick setting, open wifi
2 connect wifi
3 go back to home screen
4 launch browser and open www.baidu.com. Refresh the webpage every 5 seconds. repeat 4 times totally 20 seconds.
5 exit browser
6 disconnect wifi from quick setting
1从快速设置开始,打开wifi
2连接wifi
3返回主屏幕
4启动浏览器并打开www.baidu.com。每5秒钟刷新一次网页。总共重复4次20秒。
5退出浏览器
6断开wifi与快速设置的连接

//main
public void test_wifi2() throws IOException, UiObjectNotFoundException {
        for (int i = 0; i < 1; i++) {
            //快速设置开启WiFi
            device.openQuickSettings();
            solo.sleep(2000);
            /*if(device.hasObject(By.descContains("Wi-Fi,").textContains("On"))){
                device.pressBack();
            }else {*/
            device.findObject(By.descContains("Wi-Fi,").textContains("Off")).click();
//            }
            //回到桌面
            device.pressHome();
            //打开浏览器
            solo.sleep(1000);
//            soloUtils.launchByIntent(StringUtils.GOOGLE_CHROM_PACKGE, Intent.FLAG_ACTIVITY_NEW_TASK);
            Intent intent = targetContext.getPackageManager().getLaunchIntentForPackage(StringUtils.GOOGLE_CHROM_PACKGE);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            targetContext.startActivity(intent);
            device.waitForWindowUpdate(StringUtils.GOOGLE_CHROM_PACKGE, 10000);
            //进入浏览器的前置条件
//            reliaCom.BrowserPreposition();
            reliaCom.registerChromeWatchers();
            BySelector bySelector = By.res(Pattern.compile(StringUtils.COM_AND_CHR_ID_URL_BAR));
            solo.sleep(5000);
            UiObject2 obj = device.findObject(bySelector);
            solo.sleep(5000);
            reliaCom.removeChromeWathcers();
            solo.sleep(2000);
            obj.click();
            solo.sleep(2000);
            obj = device.findObject(bySelector);
            obj.click();
            solo.sleep(5000);
            obj.setText(StringUtils.WWW_BAIDU);
            solo.sleep(2000);
            device.findObject(By.textContains(StringUtils.WWW_BAIDU).clazz(StringUtils.AND_WIDGET)).click();
            solo.sleep(5000);
            if (device.wait(Until.hasObject(By.text(StringUtils.ALLOW)), 6000)) {
                device.findObject(By.text(StringUtils.ALLOW)).click();
            }
            if (device.wait(Until.hasObject(By.text(StringUtils.ALLOW2)), 6000)) {
                device.findObject(By.text(StringUtils.ALLOW2)).click();
            }
            boolean b1 = solo.waitForUiObjectsToExist(15000, new UiObject(new UiSelector().textContains(StringUtils.BAIDUYIXIA).className(StringUtils.ANDROID_VIEW_VIEW)));
            boolean b2 = solo.waitForUiObjectsToExist(15000, new UiObject(new UiSelector().textContains(StringUtils.MBAIDU_COM).className(StringUtils.TEXTVIEW_CLASSNAME)));
            boolean b3 = solo.waitForUiObjectsToExist(15000, new UiObject(new UiSelector().textContains(StringUtils.BAIDUYIXIA).className(StringUtils.ANDROID_WIDGET_IMAGE)));
            Assert.assertTrue("浏览器联网超时!", b1 | b2 | b3);
            solo.sleep(5000);
            for (int j = 0; j < 4; j++) {
                solo.sleep(10000);
                device.findObject(By.res("com.android.chrome:id/menu_button").descContains("More options")).click();
                solo.sleep(13000);
                device.findObject(By.res("com.android.chrome:id/button_five").descContains("Refresh")).click();
                solo.sleep(10000);
            }
            device.pressHome();
            //快速设置关闭WiFi
            device.openQuickSettings();
            solo.sleep(1000);
            if (device.hasObject(By.descContains("Wi-Fi,").textContains("On"))) {
                device.findObject(By.descContains("Wi-Fi,").textContains("On")).click();
            }
        }
    }




    public void registerChromeWatchers(){
        device.registerWatcher("CHROME", new UiWatcher() {
            @Override
            public boolean checkForCondition() {
                ArrayList<BySelector> list = new ArrayList<>();
                list.add(By.text(StringUtils.ACCEPT_CONTINUE));
                list.add(By.textContains("CONFIRM"));
                list.add(By.textContains("NO THANKS"));
                list.add(By.textContains("Accept & continue"));
                list.add(By.text(Pattern.compile("NEXT|Next")));
                list.add(By.text(Pattern.compile("No thanks|No Thanks")));
                list.add(By.text("OK"));
                list.add(By.res(StringUtils.COM_AND_CHR));
                list.add(By.res(StringUtils.COM_AND_CHR_ID_NEXT_BUTTON));
                list.add(By.text(Pattern.compile("NO THANKS|No Thanks|No thanks")));
                list.add(By.text(StringUtils.ALLOW));
                for (BySelector bySelector : list){
                    if(device.hasObject(bySelector)){
                        device.findObject(bySelector).click();
                    }
                }
                return false;
            }
        });
    }

有意思的是第一个obj会因为等待时间过短会找不到浏览器的窗口控件,被迫加了5+5+2分钟才能找到窗口控件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、app常规测试内容 1、功能测试 1.1功能点测试 测试各模块的业务功能点是否正常,app前端和后端数据交互是否正常,页面显示是否正常等 1.2业务逻辑测试 测试各关联的业务流程是否正常,异常情况下的处理方式是否正确,耶特别要关注一些关联和交互性的测试,比如与pc端的交互,客户端被打扰的测试,待机和插拔数据线的测试,前后切换是否正常等 也包括业务场景的测试,比如弱网状态的测试(可使用fiddle设置弱网),网络的切换的测试(4g_wifi等) 2、安装/卸载测试 测试app在手机上的安装/卸载是否存在问题,覆盖安装的处理是否正确,是否支持第三方的辅助安装和卸载 3、升级测试 重点要验证升级后是否正常使用,升级包括在线升级,聚道下载包升级等方式,也需要测试到相邻版本升级,以及跨版本升级的情况 4、设配性测试 也就是我们通常说的兼容性测试,主要包括几方面的兼容性:手机型号的兼容性,在手机选项的时候,要兼顾不同的品牌,型号,操作系统和版本(包括定制操作系统),屏幕尺寸和不同分辨率的兼容性 也包括内部兼容,与主流app是否兼容 5、性能测试 性能测试包括两部分,一部分是服务器的性能测试,一部分是app本身的性能测试,这里讲的是app本身的性能测试,涉及app在手机上的响应速度,比如app第一次和非第一次的启动时间,图片加载比较多的页面打开时间,app的耗电量,app的耗流量等。 6、稳定性测试 通过adb自动化命令,或者monkey等工具对app进行长时间的稳定性测试 7、权限和安全性测试 第三方工具跳出的提示禁止,是否会影响业务流程的正常进行; 敏感信息泄露 服务器接口安全性 服务器接口安全性 账号的安全性 文件及目录的权限 扣费风险 8、易用性测试 包括用户操作,界面等领域的测试,比如:操作步骤,菜单是否符合用户习惯,界面的布局是否合理,界面是否美观,整体的风格是否一致。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值