zoukankan      html  css  js  c++  java
  • RF自动化测试之元素封装

    自动化测试均需要遵循由点到面的规则,然而对于UI自动化,点是最容易发生变化的,如果使用硬链接,那么每次元素的修改都必须修改代码,这对于代码功底薄弱的测试工程师来说,是较为困难的,所以自动化测试需要对底层基本元素进行封装

    1、首先就是元素的获取方式

    我推荐使用CSV的文件格式对元素进行存储和维护,并给每个元素起个别名,这样之后元素维护只需要修改CSV表中具体的元素的,可简化维护工作,CSV文件内的格式如下:

    模块名称,自定义的元素名称,元素定位信息,描述
    Login&Register,login_label_text,btn_Login,"""我的""页面登录/注册按钮"
    Login&Register,login_phone_input,et_phone_2412,登录手机号输入框

    读取csv文件的方法如下

    import csv    
    def read_csv(self,data_path):
            with open(data_path, "r", encoding='utf-8') as csvfile:
                reader = csv.DictReader(csvfile)
                sheet_data = {}
                for line in reader:
                    sheet_data[line["自定义的元素名称"]] = line["元素定位信息"]
                # print(sheet_data.__len__())
                return sheet_data

    2、完整代码如下

    import csv
    
    class GetIdentify(object):
    
        def return_identify(self, os_name, ele_name,ele_path):
            print('进入程序,ele_name:')
            print(ele_name)
            # ele_path="D:\Study\xxx\xxxxx\"
            android_dic = GetIdentify().read_csv(ele_path+'Android_Element.csv')   #必须填入绝对路径
            ios_dic = GetIdentify().read_csv(ele_path+'IOS_Element.csv')   #必须填入绝对路径
            if os_name.lower() == 'android':
                re_id = android_dic.get(ele_name)
                print(re_id)
                return re_id
            elif os_name.lower() == 'ios':
                re_id = ios_dic.get(ele_name)
                print(re_id)
                return re_id
    
        def read_csv(self,data_path):
            with open(data_path, "r", encoding='utf-8') as csvfile:
                reader = csv.DictReader(csvfile)
                sheet_data = {}
                for line in reader:
                    sheet_data[line["自定义的元素名称"]] = line["元素定位信息"]
                # print(sheet_data.__len__())
                return sheet_data
    
    if __name__ == '__main__':
        os_name="android"    #调试用代码
        ele_name='POI_travelpage_findcar'
        ss1=GetIdentify()
        ss1.return_identify(os_name,ele_name)
  • 相关阅读:
    JQuery批量图片上传插件—Uploadify使用记录
    SQL2008 附加数据库提示 5120错误
    enter the full pathname for java.exe
    共享文件夹设置
    曾经运行该线程的应用程序域已卸载
    无法打开物理文件 。操作系统错误 5:"5(拒绝访问。)"。 消息 5120,级别 16,状态 101
    开篇一个码农,一个苦逼的码农生活经历
    POI 3.17 读取Excel(模板)、导出Excel
    Java微信支付开发之关闭订单
    Linux下安装 MySQL5.7.28
  • 原文地址:https://www.cnblogs.com/bestwei/p/11242889.html
Copyright © 2011-2022 走看看