appium app自动化测试(满满的干货)

环境搭建:https://blog.csdn.net/u013314786/article/details/83216390

真机运行:https://blog.csdn.net/MenofGod/article/details/82221358

app页面元素获取:https://www.cnblogs.com/Lixinhang/p/10954759.html
AndroidSDK->tools->bin 双击uiautomateviewer.bat

本地调试测试代码,远程控制测试环境-Remote(超详解):https://www.cnblogs.com/du-hong/p/11375525.html
在这里插入图片描述

执行测试:
1.Appium连接真机:(目前还没用真机)
连接参数意义
platformName:平台名称,iOS、Android、 FirefoxOS,选择真机/模拟器对应的就好
platformVersion:平台版本,可在手机设置中的关于手机查看
deviceName:设备名称
appPackage:要运行的Android应用程序的Java包(获取方式在上方给出的文章中,只试了第三种)
appActivity:从程序包启动的Android活动的活动名称
noReset:不在此会话之前重置应用程序状态(意思就是每次启动都当做第一次启动,因为首次进入某些应用时有的会有弹框,所以测试时可以设置为True),默认为False
udid:连接的物理设备的唯一设备标识符,可通过adb devices查看,就是一串数字和字母组成的字符

测试案例

测试的案例是计算机
首先appium连接手机成功
点击Start Session,成功后就说明连接上了
左边显示手机界面,中间显示app 的源代码,最右边会显示我们选中的元素
左边手机界面选中了元素,最右边会显示id、xpath,以便于写代码定位元素
例如需要计算机自动计算1595+6等于多少
可以一个一个的选择每个字符的id是多少,然后利用python代码选中该元素

2.Appium连接模拟器(已经实践可以成功的)
参考:https://blog.csdn.net/u013314786/article/details/83216390
代码如下:

#coding=utf-8
from time import sleep
import unittest
from appium import webdriver   #appium继承了selenium
class MyTest(unittest.TestCase):
    #开始测试
    def setUp(self):
        desired_caps = {
            'platformName':'Android',
            'platformVersion':'5.1.1',
            'deviceName':'127.0.0.1:62001',
            'appPackage':'com.youdao.calculator',
            'appActivity':'com.youdao.calculator.activities.MainActivity',  # activity 名称
            'automationName':'UiAutomator2',
            'noReset':'False'
        }
        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)  # 连接Appium
        #去掉这一行就报错,找不到id
        self.driver.implicitly_wait(10)

    def test_calculator1(self,t=500,n=4):
        #计算器测试
        sleep(3)
        #定义滑动的位置
        window = self.driver.get_window_size()
        x0 = window['width']*0.8  #起始x坐标
        x1 = window['width']*0.2  #终止x坐标
        y = window['height']*0.5  #y坐标
        #开始滑动屏幕,4次
        for i in range(3):
            self.driver.swipe(x0,y,x1,y,t)
            sleep(1)
        self.driver.find_element_by_id('com.youdao.calculator:id/guide_button').click()

        for i in range(5):
            self.driver.find_element_by_id('com.youdao.calculator:id/iv_guide_img').click()
            sleep(1)
        #按钮的路径  怎么得到这个xpath呢?  就是布局的层层嵌套
        btn_xpath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.support.v4.widget.DrawerLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout/android.widget.LinearLayout[3]/android.view.View/android.widget.GridView/android.widget.FrameLayout[{0}]/android.widget.FrameLayout'
        #第7个按钮
        self.driver.find_element_by_xpath(btn_xpath.format(7)).click()
        #第10个按钮
        self.driver.find_element_by_xpath(btn_xpath.format(10)).click()
        #第8个按钮
        self.driver.find_element_by_xpath(btn_xpath.format(8)).click()
        sleep(3)

    #结束测试
    def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
    MyTest().test_calculator()

app自动化

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值