(4.5.5.10)Espresso之Robotium与Espresso的结合

相同点:

  1. Robotium和Espresso都是基于Android Instrumentation框架;

不同点:

  1. Espresso是事件驱动,测试线程和UI线程安全的运行,不用做类似sleep操作;
  2. Espresso执行速度比Robotium快;
  3. Espresso语法简洁,可以配合hamcrast断言框架;
  4. instrumentation框架的局限性是不能跨进程,Espresso通过intented方法,可以mock被测进程,进一步扩展了局限性;
  5. 对于broadcast和service这些非UI线程的异步操作,Espresso提供IdlingResource接口,通过实现这个接口,来判断异步操作是否完成;
  6. 扩展控件支持,比如RecyclerView等;
  7. Google官方UI测试框架,下一个版本支持WebView;

常用api

//这个不是robotium的函数,用于文本校验
assertture(“校验的文本”,true)

//EditText文本输入
TypeText(String) - 一个个字输入
EnterText(String) - 一串数据输入

//等待页面中的文本
waitfortext(string,多少个相匹配,等待时间(毫秒))
waitfortext(id,多少个相匹配,等待时间(毫秒))
waitForActivity()

//查看页面中的文本
SearchText()
SearchButton()
SearchEditText()

waitfortext、searchtext可以获取toast message

//点击按钮
ClickOnText(String)
ClickOnButton(String)
ClickOnCheckBox
ClickOnRadioButton
ClickInList(第几行)

ClickOnView(GetView(id)) - 点击页面中难找到的控件
ClickOnImage(index) - 点击页面中图片按钮,如账号中的“X”按钮

//清除控件中的文本
ClearEditText

//滚动
ScroolDown - 向下滚动屏幕
scrollListtoline(index,多少行) - 向下滚动列表框多少行
scrolltoside - 水平滚动屏幕

//屏幕控制
setActivityOrientation(Solo.LANDSCAPE或Solo.PORTRAIT) 控制屏幕横向或纵向显示

//跳转
goBack() 模仿硬返回键
goBackToActivity(“Activity名”) 跳到指定的Activity

//截屏

takescreenshot

示例

    @Rule
    public ActivityTestRule<LoginActivity> mActivityTestRule = new ActivityTestRule<>(LoginActivity.class);

    protected Solo solo;
    @Before
    public void setUp() throws Exception {
        solo = new Solo(InstrumentationRegistry.getInstrumentation(),
                mActivityTestRule.getActivity());
    }

    @After
    public void tearDown() throws Exception {
        solo.finishOpenedActivities();
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值