Part-Appium-3

1.谁可以不做ui自动化

>人工测试旧可以满足公司的需求

>初创团队,业务未定型,重构频繁,无回归测试压力

>业务无积累,大量小功能频繁上线

>测试体系完备:单元测试,集成测试非常完备

2.自动化测试的价值

>提高效率,融入企业迭代流水线,CICD,devops融合

>回归测试,功能测试加速

>提高质量,兼容性,专线/非功能测试,自动化探索测试

3.appium原理

appium底层用的就是uiautomator2

apppium在电脑上开启web服务,脚本语言会发送http请求给appium服务,收到后会调用webdriver驱动,push到手机,在手机上安装uiautomator2 server  apk,进行自动化。

4.自动处理权限弹框

autoGrantPermissions:true

5.caps的设置

>app apk地址

>appPackage包名

>appActivity activity名字

>automationName,默认使用uiautomator

>noReset,fullReset是否在测试前重置相关环境

>unicodeKeyBoard,resetKeyBoard是否需要输入非英文之外的语言并在测试完成后重置输入法

>udid,如果有多台设备,用此参数

5.api

http://appium.io/docs/en/about-appium/intro/,commands

>find_element_by_:resourceId,classname,xpath,accessID,text,

>element.click()  点击

>driver.swipe(

>

>

>

6.查看包名和activity名称

adb shell dumpsys window | grep -i mCurrentFocus

7.

from appium import webdriver

apk = 'cc.rideal.messageboard/com.peopletech.main.mvp.ui.activity.SplashActivity'
caps = {}
caps["platformName"] = "android"
caps["deviceName"] = "android"
caps["appPackage"] = "cc.rideal.messageboard"
caps["appActivity"] = "com.peopletech.main.mvp.ui.activity.SplashActivity"
caps["autoGrantPermission"] = "true"

7.运行脚本时,如果出现urllib3相关的问题,可以尝试升级: pip3 install --upgrade --ignore-installed urllib3 --user

8.Hybrid  APP,Native App,Web APP

native直接用find_element_by_id这种就可以

>web view:内嵌的浏览器

i.在模拟器上,webview的所有的代码都打开。但真机,是不允许获取内部控件的。这是要找研发,开启webview的调试属性

>

>

>

>

9.PO模式:case面向业务,一个页面就是一个服务。

> 用公共方法代替UI所提供的功能

> 方法应该返回其他的PageObject或者返回用于断言的数据

> 同样的行为不同的结果可以建模为不同的方法

> 不要在方法内加断言

> 不要暴露页面内部的元素给外部

> 不需要建模UI内的所有元素

10.PO主要组成元素

>Page对象,完成对页面的封装

>Driver对象,完成对web,android,ios,接口的驱动

>测试用例:调用page对象,实现业务并断言

>数据封装:配置文件和数据驱动

>其他功能的封装,改进原生框架的不足

 

posted @ 2019-11-17 12:42  博客e用户  阅读(208)  评论(0)    收藏  举报