toast提示信息获取和Monkey笔记,文件上传利器SWFUpload入门简易教程

一、Toast提示信息获取

Toast是我们在Android开发中最常用的提示框框架之一,但是在自动化测试中,我们需要获取Toast的内容以验证是否符合预期结果。本篇文章就为大家介绍如何获取Toast提示信息。

首先,我们需要先获取当前界面的Window对象,然后通过Window对象获取到当前界面上的所有View对象。接着,我们可以通过遍历所有View对象,找到Toast对象。

一般来说,Toast对象的类名为"android.widget.Toast",我们可以通过查找所有View对象是否属于该类来确定是否找到了Toast对象。

有了Toast对象之后,我们可以通过反射获取到Toast对象中的"mNextView"字段,该字段指向了Toast中的TextView对象。然后,我们就可以通过该TextView对象获取到Toast中的文本内容。

下面就是一段示例代码,可以获取当前界面上的Toast提示信息:

```

public static String getToastMessage() {

String message = "";

try {

// 获取当前界面的Window对象

WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

if (windowManager != null) {

final View decorView = windowManager.getDecorView();

if (decorView != null) {

// 遍历当前界面上的所有View对象

decorView.post(new Runnable() {

@Override

public void run() {

ArrayList views = getAllChildViews(decorView);

if (views != null) {

for (View view : views) {

// 找到Toast对象

if (view.getClass().getName().equals("android.widget.Toast")) {

try {

// 获取Toast中的TextView对象

Field field = view.getClass().getDeclaredField("mNextView");

field.setAccessible(true);

Object obj = field.get(view);

if (obj != null && obj instanceof TextView) {

TextView tv = (TextView) obj;

// 获取Toast中的文本内容

message = tv.getText().toString();

}

} catch (Exception e) {

e.printStackTrace();

}

break;

}

}

}

}

});

}

}

} catch (Exception e) {

e.printStackTrace();

}

return message;

}

// 获取ViewGroup中的所有子view

public static ArrayList getAllChildViews(View view) {

if (view == null) {

return null;

}

ArrayList allChildViews = new ArrayList();

if (view instanceof ViewGroup) {

ViewGroup vp = (ViewGroup) view;

int childCount = vp.getChildCount();

for (int i = 0; i < childCount; i++) {

View child = vp.getChildAt(i);

allChildViews.add(child);

allChildViews.addAll(getAllChildViews(child));

}

}

return allChildViews;

}

```

二、Monkey笔记

在Android自动化测试中,Monkey是一种非常常用的工具,它可以随机生成一系列的操作事件,帮助我们发现程序中的异常和潜在问题。

下面是一些Monkey的常用命令:

1. 执行Monkey测试:

```

adb shell monkey -p your.package.name -v 500

```

该命令会执行一次Monkey测试,其中"your.package.name"为要测试的应用程序包名,"-v"表示输出详细日志,"500"表示执行的事件数量。

2. 设置Monkey选项:

```

adb shell monkey --pct-touch 50 --pct-motion 25 --pct-syskeys 15 --pct-nav 10 --pct-appswitch 0 -v 500

```

该命令可以设置Monky的选项,"-pct-touch"表示触摸事件的占比,"-pct-motion"表示动作事件的占比,"-pct-syskeys"表示系统按键事件的占比,"-pct-nav"表示导航事件的占比,"-pct-appswitch"表示应用程序切换事件的占比,"-v"表示输出详细日志,"500"表示执行的事件数量。

3. 忽略某些操作:

```

adb shell monkey -p your.package.name -v --ignore-crashes --ignore-timeouts --ignore-security-exceptions 500

```

该命令可以忽略某些操作,例如"--ignore-crashes"表示忽略崩溃,"--ignore-timeouts"表示忽略超时,"--ignore-security-exceptions"表示忽略安全异常。

4. 输出日志到文件:

```

adb shell monkey -p your.package.name -v 500 > /mnt/sdcard/monkey.log

```

该命令可以将Monkey日志输出到指定文件"/mnt/sdcard/monkey.log"中。

Monkey测试是一种较为粗暴的测试方法,我们并不能保证测试结果的完全准确和完整性,因此在实际测试过程中,我们需要根据具体的测试需求和情况进行合理的使用和配置。

购买后如果没出现相关链接,请刷新当前页面!!!
链接失效的请留言 ,我看见了就补上!!!

网站内容来源于互联网,我们将这些信息转载出来的初衷在于分享与学习,这并不意味着我们站点对这些信息的观点或真实性作出认可,我们也不承担对这些信息的责任。
适度游戏益脑,沉迷游戏伤身。 合理安排时间,享受健康生活。适龄提示:适合18岁以上使用!

点赞(117) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部