前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Appium系列|测试脚本实现 (四)

Appium系列|测试脚本实现 (四)

作者头像
测试邦
发布2019-07-24 09:40:49
5190
发布2019-07-24 09:40:49
举报
文章被收录于专栏:测试邦测试邦

跨应用脚本实现

这个小节我们主要会来介绍下Appium有别于一些自动化工具的特性,即它支持跨应用的操作,那什么事跨应用呢,比如你是一个新闻类的应用,在新闻详情页里面一般都会有分享的按钮,可以选择分享到一些社交应用上如微信朋友圈等,点击分享后界面就会跳到社交类应用上如微信上,这种调转到其他应用的操作我们成为跨应用的操作,英文里成为CROSS APP。

现在我们来实现如下的的跨应用的用例:

  1. 启动应用
  2. 点击首页的第一条资讯
  3. 在资讯详情页面点击底部右侧的分享按钮
  4. 选择分享到QQ(假定模拟器未安装QQ )
  5. 在出现的QQ登录界面输入用户名277860602(如果成功输入说明可以进行跨应用的操作)

上面步骤5出现的页面通过uiautomatorviewer观察到所属的包名为com.android.chrome不是开源中国的包名net.oschina.app,因此属于跨应用的操作

可以在测试工程里新建一个包如testcases.crossapp,接着新建一个类CrossApp来实现上面的用例。

在具体实现之前先打开之前抽取的资讯详情的Page类,添加点击分享按钮的操作。QQ登录页面的输入操因为只是一个演示的操作这里不再单调新建一个Page类来封装了,直接也放在资讯详情的Page类里,更新完的Page类如下所示:

代码语言:javascript
复制
package appium.pages;

import appium.common.Helper;
import org.openqa.selenium.WebElement;

public class PageNewsDetail {
    private Helper helper;

    public PageNewsDetail(Helper helper){
        this.helper = helper;
    }

    //封装收藏按钮
    public WebElement getAddToFavoritesBtn(){
        return helper.findById("net.oschina.app:id/iv_fav");
    }

    //封装底部的分享按钮
    public WebElement getShareIcon(){
        return helper.findById("net.oschina.app:id/iv_share");
    }

    //封装QQ分享项控件
    public WebElement getQQShareOption(){
        return helper.findByText("QQ");
    }

    //封装QQ登录页面的用户名输入框
    public WebElement getUserNameInQQLoginPage(){
        return helper.findById("u");
    }

    //封装点击底部分享按钮
    public void clickShareIcon(){
        helper.click(getShareIcon());
    }

    //点击收藏按钮的方法
    public void clickAddToFavorites(){
        helper.click(getAddToFavoritesBtn());
    }

    //封装点击分享到QQ的操作
    public void clickShareToQQOption(){
        helper.click(getQQShareOption());
    }

    //封装输入QQ用户名输入框的方法
    public void enterNameInQQLoginPage(String name ){
        helper.enterText(getUserNameInQQLoginPage(),name);
    }
}

这时候就可以具体来实现用例了,实现完如下所示:

代码语言:javascript
复制
package appium.testcases.crossapp;

import appium.common.BasicTestCase;
import org.testng.annotations.Test;

public class CrossApp extends BasicTestCase {

    @Test
    public void testCrossApp() throws Exception {
        pageHelper.getPageNews().clickNewsItem(2);
        pageHelper.getPageNewsDetail().clickShareIcon();
        pageHelper.getPageNewsDetail().clickShareToQQOption();
        pageHelper.getPageNewsDetail().enterNameInQQLoginPage("277860602");
    }
}

执行下脚本可以看到成功往用户名输入框输入了信息,说明跨应用的操作是成功的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试邦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 跨应用脚本实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档