Appium用例录制

1.Android自动化前提依赖

1)genimotion和sdk自带模拟器可以创建不同版本和不同镜像
2)网易mumu只针对6.0版本的改造 
2.Apppium Desktop主要功能
  UI分析: 有哪些界面,有哪些层级结构
  录制用例: 可以生成不同语言的脚本
  元素查找测试
  Attach已有的session
  云测试
appium监听本地4723端口:http://localhost:4723/wd/hub
3.利用Apppium Desktop生成用例模板
1)参考文档位置如下:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
文档如下:appPackage是唯一标识, 对于android来说每个页面都是一个activity
 
2)获取app信息,以雪球app为例
打开模拟器,连接adb,使用adb工具,adb devices查看是否连接成功
获取任务列表: activities获取之前的
3)配置待测应用的信息(desire capability)
 
4)录制脚本,导出python语言的用例

 

上方从左到右按钮:定位元素、定位页面坐标、返回页面、刷新页面、(小眼睛)录制脚本、复制元素、关闭

右侧红线附近:tap点击操作。send keys 在输入框中输入内容,clear清空

id即 resource-id,唯一标识 

5)添加隐士等待、noReset等增强用例稳定性
录制脚本支持语言

 

点击雪球app弹框提示,如何避免?使用noReset=true

 
 录制脚本代码如下:
from appium import webdriver

desired_caps = {
    "platformName": "android",
    "deviceName": "emulator-5554",
    "appPackage": "com.xueqiu.android",
    "appActivity": ".view.WelcomeActivityAlias",
    "noReset": True
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.implicitly_wait(10)
el1 = driver.find_element_by_id("com.xueqiu.android:id/tv_search")
el1.click()
el2 = driver.find_element_by_id("com.xueqiu.android:id/search_input_text")
el2.send_keys("京东")
el3 = driver.find_element_by_xpath(
    "/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.LinearLayout/androidx.recyclerview.widget.RecyclerView/android.widget.RelativeLayout[1]/android.widget.LinearLayout/android.widget.TextView[1]")
el3.click()
 

 

posted @ 2020-04-13 11:21  zhaikunkun  阅读(277)  评论(0)    收藏  举报