www.7758,达州装饰网,韩城暖恋
1.将android studio 版本升级到3.0+
2.百度下载夜神模拟器
ps:以上就是夜神模拟器的基本设置
//夜神模拟器默认的地址 adb connect 127.0.0.1:62001
在顶部工具栏找到run -> record espresso test -> 选择夜神模拟器双击启动 -> 启动后界面如下图
ps:操作模拟器 -> record your test 弹框将自动生成你的行为代码 -> 点击ok -> 命名并保存代码(可以一个页面一个页面的录制,然后生成一份一份的测试脚本)
ps:静待安装,然后模拟器会自动执行你录制的动作,logcat可以查看日志
package com.example.administrator.teagarden.activity.login; import android.support.test.espresso.viewinteraction; import android.support.test.filters.largetest; import android.support.test.rule.activitytestrule; import android.support.test.runner.androidjunit4; import android.view.view; import android.view.viewgroup; import android.view.viewparent; import com.example.administrator.teagarden.r; import org.hamcrest.description; import org.hamcrest.matcher; import org.hamcrest.typesafematcher; import org.junit.rule; import org.junit.test; import org.junit.runner.runwith; import static android.support.test.espresso.espresso.onview; import static android.support.test.espresso.action.viewactions.click; import static android.support.test.espresso.action.viewactions.closesoftkeyboard; import static android.support.test.espresso.action.viewactions.replacetext; import static android.support.test.espresso.matcher.viewmatchers.isdisplayed; import static android.support.test.espresso.matcher.viewmatchers.withclassname; import static android.support.test.espresso.matcher.viewmatchers.withid; import static android.support.test.espresso.matcher.viewmatchers.withtext; import static org.hamcrest.matchers.allof; import static org.hamcrest.matchers.is; @largetest @runwith(androidjunit4.class) public class splashactivitytest { @rule public activitytestrule<splashactivity> mactivitytestrule = new activitytestrule<>(splashactivity.class); @test public void splashactivitytest() { // added a sleep statement to match the app's execution delay. // the recommended way to handle such scenarios is to use espresso idling resources: // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/ try { thread.sleep(6000); } catch (interruptedexception e) { e.printstacktrace(); } viewinteraction appcompatedittext = onview( allof(withid(r.id.login_edit_user), childatposition( childatposition( withclassname(is("android.widget.linearlayout")), 2), 0), isdisplayed())); appcompatedittext.perform(click()); viewinteraction appcompatedittext2 = onview( allof(withid(r.id.login_edit_user), childatposition( childatposition( withclassname(is("android.widget.linearlayout")), 2), 0), isdisplayed())); appcompatedittext2.perform(replacetext("152****3478"), closesoftkeyboard()); viewinteraction appcompatedittext3 = onview( allof(withid(r.id.login_edit_mima), childatposition( allof(withid(r.id.logint_edit_layout), childatposition( withclassname(is("android.widget.linearlayout")), 4)), 0), isdisplayed())); appcompatedittext3.perform(replacetext("admin000"), closesoftkeyboard()); viewinteraction appcompatbutton = onview( allof(withid(r.id.login_button), withtext("登录"), childatposition( childatposition( withclassname(is("android.widget.relativelayout")), 1), 2), isdisplayed())); appcompatbutton.perform(click()); // added a sleep statement to match the app's execution delay. // the recommended way to handle such scenarios is to use espresso idling resources: // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/ try { thread.sleep(3000); } catch (interruptedexception e) { e.printstacktrace(); } viewinteraction radiobutton = onview( allof(withid(r.id.main_home_radio2), withtext("监控"), childatposition( allof(withid(r.id.main_tab_group), childatposition( withclassname(is("android.widget.linearlayout")), 0)), 1), isdisplayed())); radiobutton.perform(click()); // added a sleep statement to match the app's execution delay. // the recommended way to handle such scenarios is to use espresso idling resources: // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/ try { thread.sleep(3000); } catch (interruptedexception e) { e.printstacktrace(); } viewinteraction radiobutton2 = onview( allof(withid(r.id.main_home_radio3), withtext("动态"), childatposition( allof(withid(r.id.main_tab_group), childatposition( withclassname(is("android.widget.linearlayout")), 0)), 2), isdisplayed())); radiobutton2.perform(click()); // added a sleep statement to match the app's execution delay. // the recommended way to handle such scenarios is to use espresso idling resources: // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/ try { thread.sleep(3000); } catch (interruptedexception e) { e.printstacktrace(); } viewinteraction radiobutton3 = onview( allof(withid(r.id.main_home_radio4), withtext("我的"), childatposition( allof(withid(r.id.main_tab_group), childatposition( withclassname(is("android.widget.linearlayout")), 0)), 3), isdisplayed())); radiobutton3.perform(click()); } private static matcher<view> childatposition( final matcher<view> parentmatcher, final int position) { return new typesafematcher<view>() { @override public void describeto(description description) { description.appendtext("child at position " + position + " in parent "); parentmatcher.describeto(description); } @override public boolean matchessafely(view view) { viewparent parent = view.getparent(); return parent instanceof viewgroup && parentmatcher.matches(parent) && view.equals(((viewgroup) parent).getchildat(position)); } }; } }
ps:代码其实很简单,照搬照套,还有别的花样么...录制的时候,也就是操作模拟器,生成代码的时候有点卡....有没有人告诉我怎么解决?
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论