51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2016|回复: 1
打印 上一主题 下一主题

App UI自动化Case规范

[复制链接]
  • TA的每日心情
    无聊
    9 小时前
  • 签到天数: 528 天

    连续签到: 1 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2019-1-2 15:29:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 测试积点老人 于 2019-1-2 15:30 编辑

    UI自动化case编写规范:
    1、配置文件、基础函数和case文件分离保存
    2、按业务特点,分功能模块或入口展示页面,划分case结构
    3、case 级别设置
    4、基础函数封装命名
    5、基础函数封装注释
    6、变量命名遵守驼峰命名法
    7、增加case说明

    具体为:
    1、配置文件、基础函数和case文件分离保存
    如用户端:
    IWM_User为各页面入口的case综合(登录、首页tab、吃啥tab、订单tab、我的tab、召回地址)
    OrderList为订单相关case
    ShoppingCart为shopmenu页面相关case

    2、按业务特点,分功能模块或入口展示页面,划分case结构,并数字化命名
    如用户端,分为登录、首页tab、吃啥tab、订单tab、我的tab、召回地址、订单模块、购物车模块
    各模块各举一例命名方式:

    test_0***_login                                   //登录模块
    test_1001_ShopSearch                    //首页tab     
    test_2001_EatWhat_OftenEat           //吃啥tab
    test_3001_OrdersList_Breakfirst         //订单tab
    test_4001_Coupon_All                        //我的tab
    test_5001_RecallAddress_Switch         //召回地址模块
    test_6101_ShopMenu_Introduction       //购物车模块


    中间数字意思代表:
    第一位数:代表模块
    第二位数:代表子模块,以此类推

    以用户端订单模块为例:第一位数3代表订单模块;第二位数0代表订单列表,1代表提单页,2代表订单支付;后两位依次取值。

    好处:清晰case所属模块、同一模块case可以相继运行

    3、case级别设置
    checklist  :冒烟case
    P0              :与功能case一致
    P1              :与功能case一致
    P2              :与功能case一致

    4、基础函数封装命名
    主要有:等待类、获取类、判断类、断言类、点击类、滑动类、路径类等,名字要能体现函数功能

    • 等待类:
    以WaitFor开头命名函数,用户端命名为:
    WaitForLoadingBearDisappear()
    WaitForStringHide(String)
    WaitForStringShow(String...)
    WaitForStringShowAndClick(String...)
    WaitForStringShowAndClick_Scroll(String)
    WaitForStringShowAndClick_Scroll(String, Boolean)
    WaitForStringShowAndClick_Scroll_UP(String)
    WaitForStringShowInWebView(String...)
    WaitForStringShowScroll(String)
    WaitForStringShowScroll(String, Boolean)
    WaitForStringShowScroll_UP(String)
    WaitForViewHide(String)
    WaitForViewShow(String)
    WaitForViewShowAndClick(String)
    WaitForViewShowAndClick_Scroll(String)
    WaitForViewShowAndClick_Scroll(String, Boolean)
    WaitForViewShowAndClick_Scroll_UP(String)
    WaitForViewShowScroll(String)
    WaitForViewShowScroll(String, Boolean)
    WaitForViewShowScroll_UP(String)

    • 判断类:
    以Check开头的命名函数,用户端命名为:
    Check_OneMoreOrder()
    Check_OrderList_Conditions_Satisfied(String, Boolean, Boolean, String)
    Check_OrderList_Conditions_Satisfied(String, Boolean, String)
    Check_OrderList_Conditions_Satisfied(String, Boolean, String, String)
    Check_OrderList_Conditions_Satisfied(String, String, Boolean)
    Check_OrderList_Conditions_Satisfied(String, String, String, Boolean)
    Check_Pattern_Matcher(String, String)
    Check_ShopCart()
    Check_ShopCart_button()
    Check_ShopStatus(String)
    Check_ShopStatus(String, String)
    CheckDialogIsShow()
    CheckDialogIsShow(int)
    CheckDialogIsShow(int, String)
    CheckStringIsShow(String...)
    CheckStringIsShowInWebView(String...)
    CheckTextById(String, String)
    CheckTextByXpath(String, String)
    CheckTextEqual(String, String)
    CheckTitleBar(String)
    CheckViewIsShow(String)
    CheckViewIsShowByClassName(String)

    • 滑动类:
    以Scroll开头的命名函数,用户端命名为:
    scroll(int)
    Scroll(Double, Double)
    Scroll(Double, Double, int)
    Scroll_X(Double, Double)
    ScrollPage_Down(int)
    ScrollPage_Up(int)
    ScrollTextToMiddle(String, int)
    ScrollToViewTop(String, String, int)
    ScrollView_X(String, double, double, int)
    ScrollView_Y(String, double, double, int)
    ScrollViewAndClick_Y(String, String, double, double, int)
    ScrollViewToMiddle(String, int)

    • 断言类:
    以Assert开头的命名函数,用户端命名为:
    Assert_MobileNumber(String)
    Assert_Pattern_Matcher(String, String)
    AssertThat_DialogIsShow()
    AssertThat_DialogIsShow(int)
    AssertThat_DialogIsShow(int, String)
    AssertThat_TextById(String, String)
    AssertThat_TextByXpath(String, String)
    AssertThat_TextEqual(String, String)
    AssertThat_TextNotEqual(String, String)
    AssertThat_TextNotNuLL(String)
    AssertThat_TextNotNull_ById(String)

    • 点击类:
    以ClickOn开头的命名函数,用户端命名为:
    ClickOnText(String...)
    ClickOnText_JinGang(String)
    ClickOnTextInWebView(String...)
    ClickOnView(String)
    ClickOnView(String, int)
    ClickOnViewXpath(String)
    ClickOnViewXpath(String, int)

    • 获取类:
    以Get开头的命名函数,用户端命名为:
    GetCaseName()
    GetCurrentPageSourseToSave(String)
    GetElementById(String)
    GetElementByText(String)
    GetElementByXpath(String)
    GetElementsById(String)
    GetElementsByText(String)
    GetElementsByXpath(String)
    GetStringByid(String)
    GetStringByXpath(String)
    GetTotalPrice(String)

    • 路径类:
    以Go开头的命名函数,用户端命名为:
    GoBack()
    GoBack(int)
    GoBack(String)
    GoBack_Physical()
    GoBack_Physical(int)
    GoBackToStrShow(String)
    Gotocate(int)
    Gotocate(int, Boolean)
    Gotocate(int, String)
    Gotocate(int, String, Boolean)

    5、基础函数封装注释
    函数前以/**  String **/的格式增加注释,以后鼠标移至此函数,就能显示注释,方便理解函数功能

    6、函数命名遵守驼峰命名法
    小驼峰法
    变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。譬如
    int myStudentCount;
    变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。

    大驼峰法
    相比小驼峰法,大驼峰法(即帕斯卡命名法)把第一个单词的首字母也大写了。常用于类名,函数名,属性,命名空间。譬如
    public class DataBaseUser;
    7、case说明
    在每条case前,增加必要的case说明。例如:
    /**
    * @name 0003_loginOut_NewUser
    * @Catalogue 未登录
    * @Subcatalog 新人专区
    * @Grade P2
    * @Describe 未登录
    * @FunctionPoint 未登录时,首页有新人专区;登录非新账号时,新人专区消失
    */

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-18 19:29 , Processed in 0.061712 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表