uiautomator中如何判断开关wifi开启和关闭是否正确
来源:互联网 发布:java的jdk和jre 编辑:程序博客网 时间:2024/05/18 00:18
在我们测试压力中肯定有这么些用例,就是让你打开xxx开关,判断开关开启成功,该如何去判断呢!
我们就举wifi开关为例,这里不考虑wifi打开后连接wifi然后能上网一系列动作我们暂不考虑,只开了打开和关闭开关这个动作,打开时是否打开成功,关闭时是否关闭成功;
第一步,打开开关这个动作我相信每个人都会,但是我们要思考如何并且判断打开开关成功,自动化开发就难倒在如何去判断和定位问题,我们打开开关肉眼可以看出就可以看,但是代码怎么去判断,代码实现肯定是:打开-关闭-打开-再关闭-再打开····这样的循环操作,也就是说,我第1次是打开,那第2次是关闭,第3次是打开,第4次是关闭····这规律就出来了,奇数是打开的意思,偶数是关闭的意思;我们第1次(奇数)打开开关的时候,使用uiautomator view工具查看test内容显示是否是关闭,反之,偶数是关闭时判断test文本是否显示是打开。只要用奇偶数去判断test文本内容,我们就可以进行判断,
因为我是根据奇偶数去判断状态的方法,所以开始测试前要确保开关是保证关闭状态的,要是为打开状态,记录的结果肯定是错误,当然还有其他的办法,我这种办法属于简单粗暴,简单易懂。仅供参考;
直接上代码:
import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;import java.util.Calendar;import android.R.string;import com.android.uiautomator.testrunner.UiAutomatorTestCase;import com.android.uiautomator.core.UiDevice;import com.android.uiautomator.core.UiObject;import com.android.uiautomator.core.UiObjectNotFoundException;import com.android.uiautomator.core.UiScrollable;import com.android.uiautomator.core.UiSelector;import dengshengyu.Util.FileUtil;/* * 项目名称:PublicPressureScript * 类名称:WifiOnAndOff * 类描述:连续打开、关闭WiFi开关 * 创建人:邓盛誉 * 创建时间:2017年8月15日 上午14:28 * 备注:wifi开关初始状态要默认关闭,终端为开机状态; * @版本v0.0.1 * * */public class WifiOnAndOff extends UiAutomatorTestCase{ public void testWifi() throws Exception { int i=0;int count = 1 ;int count1 = 1 ;int count2 = 1 ;int count3 = 1 ;//home键返回主界面 getUiDevice().pressHome(); // 进入设置菜单 Runtime.getRuntime().exec("am start com.android.settings"); sleep(3000); // 首次开关默认为关;循环点击开关50次 for(;i<50;i++){// getUiDevice().click(574,306); UiObject clickOnAndOff = new UiObject(new UiSelector().resourceId("com.android.settings:id/switchWidget")); clickOnAndOff.click(); sleep(2000); //判断开关是否正确; UiObject onOff = new UiObject(new UiSelector().resourceId("com.android.settings:id/switchWidget"));//开关控件 Runtime.getRuntime().exec("mkdir sdcard/dengshengyu"); // 在手机创建文件夹 Runtime.getRuntime().exec("mkdir sdcard/dengshengyu/wifi"); // 在手机创建文件夹 if(i%2==0){//偶数是为开 if(onOff.getText().equals("开启")){//开启成功 FileUtil.out("/sdcard/dengshengyu/wifi/Wifi开启成功.txt", "开启正确次数:"+count+";"); System.out.println("KaiQiChengGong"); count=count+1; } else if(onOff.getText().equals("关闭")){//开启失败! FileUtil.out("/sdcard/dengshengyu/wifi/Wifi开启失败.txt", "开启失败次数:"+count1+";"); System.out.println("KaiQiShiBai"); count1=count1+1; } }else //否则为奇数,也就是为关闭 if(onOff.getText().equals("关闭")){//关闭成功 FileUtil.out("/sdcard/dengshengyu/wifi/Wifi关闭成功.txt", "关闭正确次数:"+count2+";"); System.out.println("GuanBiChengGong"); count2=count2+1; } else if(onOff.getText().equals("开启")){//关闭失败 FileUtil.out("/sdcard/dengshengyu/wifi/Wifi关闭失败.txt", "关闭失败次数:"+count3+";"); System.out.println("GuanBiShiBai"); count3=count3+1; } }//for } }
这里添加个附件知识:
UiObject clickOnAndOff = new UiObject(new UiSelector().resourceId("com.android.settings:id/switchWidget"));这条控件名默认是第一个开关,从我手机截图中大家可以知道我的wifi开关就在当前界面,而且resourceId就只有一个,大家有没有想过,要是当前界面有很多开关,而且resourceId和className等名称都一样呢,大家怎么获取?请看我另篇文章有讲解;
文章作者:享有盛誉之名
阅读全文
0 0
- uiautomator中如何判断开关wifi开启和关闭是否正确
- Android 如何判断设备是否联网以及WIFI 是否开启
- 判断wifi密码是否正确
- 判断网络是否,gps,wifi是否开启
- adb 开启和关闭wifi
- Android 判断开启网络,wifi是否可用
- app判断当前网络是否可用并开启wifi和开启GPRS
- UiAutomator自动打开关闭wifi
- 如何在Ubuntu手机中判断键盘是否已经开启
- c#Windows Mobile WiFi开启和关闭
- 判断键盘是否开启,如果开启就关闭
- bootstrapValidator代码中开启验证和判断验证是否通过
- Android 监听设备打开WiFi开关的5中状态和是否已连接WiFi成功的广播
- 联想Linux中WIFI已通过硬件开关关闭
- 小知识:开启和关闭Android模拟器悬浮窗开关
- android中判断是否有网络链接和判断是否是WIFI
- 如何开启和关闭定时器
- Android 获取便携式wifi热点开关状态、热点开启与关闭
- bootstrap开发微信公众号后台界面
- PHP上传图片到七牛云存储
- Gson教程八(译):GsonBuilder基础和命名策略
- 编写keras层
- ExtJs大比拼JQuery之Dom文档操作
- uiautomator中如何判断开关wifi开启和关闭是否正确
- CSS缩写
- pyqt Qtableview,duplicate connection name 'qt_sql_default_connection', old connection removed.
- EF_85mm_1.2L_II_USM拆机电路板靓图
- window.location (小结)
- C++Primer_第11章_关联容器
- CreateThread导致内存泄露的原因
- 强删文件--->构建IRP---->独占--->正在运行 以及磁盘读写(思路)
- [caioj 1425][状态压缩]游戏---状态压缩dp