python APP UI自动化测试 基本使用

APP自动化测试
    +,环境安装
        升级:pip install -U selenium 

    +,yaml数据写入、读取方法封装:
        import yaml
        
        #读取数据
        def analyze_data(file_name, case_key):
            with open("../data/" + file_name + ".yaml", "r") as f:
                data = yaml.load(f)[case_key]
                data_list = list()
                data_list.extend(data.values())
                return data_list
        
        #写入数据
        data = {"id": "i", "name": "张三"}
        with open() as f:
            yaml.dump(data, f, encoding="utf-8", allow_unicode=True)
        
        
        
    
    1,启动Android手机的参数
        # 导模块
        from appium import webdriver
        # 创建⼀个字典,包装相应的启动参数
        desired_caps = dict()
        # 需要连接的手机的平台(不限制⼤⼩写)
        desired_caps['platformName'] = 'Android'
        # 需要连接的手机的版本号(⽐如 5.2.1 的版本可以填写 5.2.1 或 5.2 或 5 ,以此类推)
        desired_caps['platformVersion'] = '5.1'
        # 需要连接的手机的设备号(andoird平台下,可以随便写,但是不能不写;ios下必须写例如:iPhone 8)
        desired_caps['deviceName'] = '192.168.56.101:5555'
        # 需要启动的程序的包名
        desired_caps['appPackage'] = 'com.android.settings'
        # 需要启动的程序的界面名
        desired_caps['appActivity'] = '.Settings'
        # 解决中文问题
        desired_caps['unicodeKeyboard']=True
        desired_caps["resetKeyboard"]=True
        # 连接appium服务器
        driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
        方法:
            #获取当前包名,界面名
                print(driver.current_package, driver.current_activity)
            #关闭app
                driver.close_app()
            #启动其他APP   跳转到短信
                driver.start_activity(包名,界面名)
            # 将应用置于后台多少秒回来
                driver.background_app(秒数)
            # 判断应用是否已安装
                driver.is_app_installed("包名")
            # 卸载应用
                driver.remove_app("包名")
            # 安装应用
                driver.install_app(r"应用路径")
            # 滑动屏幕
                1,滑动距离越远,效果距离越远;滑动时间越短,效果距离越远。
                    driver.swipe(start坐标x,start坐标y, end坐标x,end坐标y)
                2,无惯性,从一个元素滑到另一个元素的位置
                    driver.drag_and_drob(start_element,end_element)
                3,有 “很大惯性” ,传 “元素”
                    driver.scroll(start_element,end_element)
            # 获取屏幕分辨率
                获取宽度
                driver.get_screen_size()["width"]
                获取高度
                driver.get_screen_size()["height"]
            # 重启客户端
                driver.start_client()
            # 元素位置
                element.lcation()
            # 元素大小
                element.size()
            #TouchAction
                #导包
                    from appium.webdriver.common.touch_action import TouchAction
                #轻敲tap
                    TouchAction(driver).tap(element).perform()
                    TouchAction(driver).tap(x=700, y=700).perform()
                #按下press
                    TouchAction(driver).press(x=700, y=700).perform()
                #松开release
                    TouchAction(driver).press(x=700, y=700).release().perform()
                #长按long_press
                    TouchAction(driver).long_press(x=700, y=700, duration=3000).perform()
                #移动move_to
                    TouchAction(driver).press(x=238,y=849).move_to(x=1200,y=845).perform()
            #设置网络
                导包 from appium.webdriver.connectiontype import ConnectionType
                driver.set_network_connection(ConnectionType.ALL_NETWORK_ON)
            #回车
                driver.press_keycode(66)
            #返回
                driver.press_keycode(4)
            #打开通知栏
                driver.open_notifications()
        # 退出
        driver.quit()
        
        
    2,allure 报告
        pip install pytest_allure_adaptor
        配置文件添加  --alluredir report
        下载allure-2.6.0.zip 解压到一个文件夹,配置bin目录的环境变量
        
        报告中添加测试步骤:
            @allure.step(title="测试步骤")
            def test_demo:
                pass
        
        报告中添加文字描述:
            allure.attach("描述", “测试步骤”, allure .attach _type.TEXT)
        
        报告中添加截图:
            allure.attach("截图",self.driver.get_screenshot_as_png(), allure.attach_type.PNG)
        
        报告中添加严重级别:
            1. BLOCKER 最严重
            2. CRITICAL 严重
            3. NORMAL 普通
            4. MINOR 不严重
            5. TRIVIAL 最不严重
            @pytest.allure.severity(pytest.allure.severity_level.CRITICAL)
        
        pytest生成xml格式的报告
        allure generate report/ -o report/html --clean
        
        
    3,Toast弹窗信息
        下载安装nnode.js
        安装cnmp命令:  npm install -g cnpm --registry=https://registry.npm.taobao.org
        下载 appium-uiautomator2-driver:    cnpm install appium-uiautomator2-driver
        drivere的前置代码添加  desired_caps['automationName'] = 'Uiautomator2'
        正常查找元素即可使用
    
    
   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值