Appium移动端自动化测试-安卓真机+模拟器启动

一.环境准备

appium-pythin-client版本(0.17),selenium版本(2.53.6)(版本需对应,否则执行脚本可能出错,我用的是这两个版本)

macOs版本10.14.1(appium默认不支持该版本,需修改配置文件),参考:https://blog.csdn.net/yxys01/article/details/73551281

xcode版本10.1

下载SDK解压后,点击tools文件里的android文件,进行相关安卓版本下载

二.demo代码

测试文件代码:

# coding=utf-8
"""

author:     zhuzhuzhujt
datetime:   2019/3/5 4:09 PM
project:    appuimtest
software:   PyCharm
description:

"""
import os
import unittest
from appium import webdriver
import time
import swipeandroid as sw
# from selenium.webdriver.support.ui import WebDriverWait

# Appium环境配置
PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)
# print PATH

class DpAppTests(unittest.TestCase):
    def setUp(self):
        desired_caps = {
            ‘automationName‘: ‘Appium‘,
            ‘platformName‘: ‘Android‘,
            ‘deviceName‘: ‘192.168.0.55:5556‘,
            ‘platformVersion‘: ‘5.1‘,
            # apk包名
            ‘appPackage‘: ‘cn.campsg.xuebaketang3.app‘,
            # apk的launcherActivity
            ‘appActivity‘: ‘.MainActivity‘,
            # 键盘相关
            ‘unicodeKeyboard‘: True,
            ‘resetKeyboard‘: True,
            # 是否自动启动
            ‘autoLaunch‘: True,
            # 可下载地址,如果测试机无该应用会自动进行下载安装操作
            ‘app‘: PATH(‘xuebayun.apk‘),
            # 如果测试机已有该应用,不再进行下载安装操作
            ‘noReset‘: True
        }
        self.driver = webdriver.Remote(‘http://localhost:4723/wd/hub‘, desired_caps)
        # WebDriverWait(self.driver, 30, poll_frequency=0.5, ignored_exceptions=None)

    def tearDown(self):
        self.driver.quit()

    def test_dpApp(self):

        time.sleep(10)
        # 左滑
        sw.swipLeft(500, self.driver)
        # 左滑
        sw.swipLeft(500, self.driver)
        # 模拟定位点击"立即体验"
        sw.simclick(self.driver, 0.54, 0.89)
        time.sleep(2)
        self.driver.find_element_by_android_uiautomator(‘new UiSelector().text("请输入学校名称")‘).send_keys(u‘****‘)
        time.sleep(1)
        self.driver.find_element_by_android_uiautomator(‘new UiSelector().text("请输入账号")‘).send_keys(‘***‘)
        time.sleep(1)
        self.driver.find_element_by_android_uiautomator(‘new UiSelector().text("•••••")‘).send_keys(‘***‘)
        time.sleep(1)
        self.driver.find_element_by_android_uiautomator(‘new UiSelector().description("登录")‘).click()
        time.sleep(4)

if __name__ == ‘__main__‘:
    suite = unittest.TestLoader().loadTestsFromTestCase(DpAppTests)
    unittest.TextTestRunner(verbosity=2).run(suite)

调用方法swipeandroid.py:

# coding=utf-8
"""

author:     zhuzhuzhujt
datetime:   2019/3/6 11:56 AM
project:    appuimtest
software:   PyCharm
description:

"""

def getSize(dr):   # 获取屏幕宽高
    x = dr.get_window_size()[‘width‘]
    y = dr.get_window_size()[‘height‘]
    return x, y

def swipeUp(t, dr):
    l = getSize(dr)
    x1 = int(l[0] * 0.5)
    y1 = int(l[1] * 0.75)
    y2 = int(l[1] * 0.25)
    dr.swipe(x1, y1, x1, y2, t)

def swipeDown(t, dr):
    l = getSize(dr)
    x1 = int(l[0] * 0.5)  # x坐标
    y1 = int(l[1] * 0.25)   # 起始y坐标
    y2 = int(l[1] * 0.75)   # 终点y坐标
    dr.swipe(x1, y1, x1, y2, t)

# 屏幕向左滑动
def swipLeft(t, dr):
    l = getSize(dr)
    x1 = int(l[0]*0.75)
    y1 = int(l[1]*0.5)
    x2 = int(l[0]*0.05)
    dr.swipe(x1, y1, x2, y1, t)

# 屏幕向右滑动
def swipRight(t, dr):
    l = getSize(dr)
    x1 = int(l[0]*0.05)
    y1 = int(l[1]*0.5)
    x2 = int(l[0]*0.75)
    dr.swipe(x1, y1, x2, y1, t)

def simclick(dr, xper, yper):
    # 模拟坐标点击
    l = getSize(dr)
    x1 = int(l[0]*xper)
    y1 = int(l[1]*yper)
    dr.swipe(x1, y1, x1, y1, 1)

三.真机运行

usb连接,开启开发者选项中的usb调试功能。控制台输入:adb devices查看设备列表

或者通过wifi连接,手机和电脑属于同一网段且能够ping通,控制台输入:adb connect 192.168.0.55:5556(默认断口号5555,可以adb tcpip 5556进行更改),提示连接成功后,控制台输入:adb devices查看设备

py代码参数设置如下:

desired_caps = {
            ‘automationName‘: ‘Appium‘,
            ‘platformName‘: ‘Android‘,
            ‘deviceName‘: ‘192.168.0.55:5556‘,
            ‘platformVersion‘: ‘5.1‘,
            # apk包名
            ‘appPackage‘: ‘cn.campsg.xuebaketang3.app‘,
            # apk的launcherActivity
            ‘appActivity‘: ‘.MainActivity‘,
            # 键盘相关
            ‘unicodeKeyboard‘: True,
            ‘resetKeyboard‘: True,
            # 是否自动启动
            ‘autoLaunch‘: True,
            # 可下载地址,如果测试机无该应用会自动进行下载安装操作
            ‘app‘: PATH(‘xuebayun.apk‘),
            # 如果测试机已有该应用,不再进行下载安装操作
            ‘noReset‘: True
        }

打开appium,点击launch打开appium服务后,在pycharm上执行代码,测试机会自动执行

四.安卓模拟器执行

SDK文件夹,点击tools文件里的android文件

1.下载android版本,我这里下载的是5.1版本

2.下载完成后,点击菜单栏如下,选择Manage AVDs

3.点击create,创建模拟器,如图(具体配置可以自行百度)

4.点击start运行模拟器,此处一开始点击启动时,报了个未安装Intel HAXM的error,此时回到 Android SDK Mannager配置页,选择extras下如图的文件进行安装

下载成功后,我又试了下start模拟器,仍旧报错。

此时进入SDK文件夹,多了个extras文件夹,点进去选择intel,一层层进入,会有个两个安装文件,如下图,我试了第1个未安装成功,点击第2个文件提示安装好后,进入系统安全性与隐私内,把系统阻拦的文件访问给允许(就因为这个地方导致一直无法访问intel HAXM)

之后,进入AVM配置页面,点击start,模拟器成功启动(特别慢,需要等很久时间),进入系统后显示如图

5.修改代码参数配置处,修改deviceName,模拟器设备名,可进入控制台输入:adb devices查看,如下图

修改代码:

6.打开appium,点击launch,启动appium服务后,运行代码文件

自动下载apk文件安装,并自动执行

(注:模拟器过分卡顿,很容易出现应用闪退的情况,之后准备再试一下夜神模拟器上运行的情况)

以上就是Appium自动化测试在真机和模拟器上的运行步骤,下一节,稍微写一下ios真机及ios模拟器自动运行应用的情况。

原文地址:https://www.cnblogs.com/zhuzhutest/p/10489873.html

时间: 2024-08-29 23:58:18

Appium移动端自动化测试-安卓真机+模拟器启动的相关文章

移动端前端开发真机调试攻略

移动端前端开发真机调试攻略 一.IOS 移动端 (Safari开发者工具) 手机端:设置 → Safari → 高级 → Web 检查器 → 开. mac端:Safari → 偏好设置 → 高级 → 在菜单栏中显示“开发”菜单. 在 OS X 中启动 Safari 之后,以 USB 电缆正常接入 iOS 设备,并在此移动设备上启动 Safari.此时点击计算机上的 Safari 菜单中的“开发”,可以看到有 iOS 设备的名称显示,其子菜单项即为移动设备上 Safari 的所有标签页,点击任意一

cocos2dx listview使用时,win32调试显示正常,安卓真机显示异常

将AppActivity.java的内容修改为如下: package org.cocos2dx.cpp; import org.cocos2dx.lib.Cocos2dxActivity; import org.cocos2dx.lib.Cocos2dxGLSurfaceView; public class AppActivity extends Cocos2dxActivity { public Cocos2dxGLSurfaceView onCreateView() { Cocos2dxGL

安卓真机ADB shell添加slite3命令

安卓默认的数据库是SQLite,包括IOS好像也是的,在用ADB Shell时,用虚拟机的不仅可以直接访问android root目录.还能使用SQLITE 首先安装root你的安卓手机,然后下载一个SQLite3 这个可以从虚拟机的/system/xbin下导出,也可以 下载 ,下载后导入到手机 下载后在手机上安装RE文件管理器,授予root权限后可以进入sdcard目录下找到SQLite3文件,长按选择COPY或者MOVE,转到/system/xbin目录下,点击COPY HERE 或者MO

移动端WEB开发真机测试

关于移动端WEB开发真机测试亲身实验的一些体会. 之前的开发都用Chrom的模拟,但是效果毕竟不如真机,总结几点吧,至于详细的安装过程网上都有教程http://www.cnblogs.com/xiaohuochai/p/5512051.html,这里就不在赘述. BrowserSync是基于Node.js的,是一个Node模块,所以需要先安装nodejs(之后都在它之上进行的(*^__^*) 嘻嘻……) BrowserSync能让PC.各移动设备上的页面同时实时地响应文件的更改,而不用刷新操作~

cocos2dx 安卓真机调试问题汇总

cocos compile编译apk问题汇总: 1,dx编译报错,没有足够的空间 ANTBUILD : [dx] error : Could not create the Java Virtual Machine. ANTBUILD : [dx] error : A fatal exception has occurred. Program will exit. [dx] Error occurred during initialization of VM [dx] Could not rese

appium移动端自动化测试环境搭建windows-appium-android

第一步:安装jdk 安装jdk(1.7版本以上) 安装完成设置jdk环境变量(百度查询) cmd命令下键入 java -version命令检查jdk是否安装成功且设置环境变量成功,如下图所示: 第二步:安装Android SDK(安卓软件开发包) 下载地址:http://tools.android-studio.org/index.php/sdk/ 如下图所示: 下载此安装包至任意目录下解压,如下图所示: 解压完成以后,把SDK目录例如:D:\自动化测试工具\自动化测试工具\andrio_sdk

ios 动态库合成包(真机&模拟器)脚本

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Menlo; color: #008400 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #008400 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Menlo; color: #000000 } p.p4 {

react-native Mac下安卓真机调试

安装Android studio参考资料:https://blog.csdn.net/u014202635/article/details/55668976(有些繁琐,使用里面的下载网站,其余按照我的来) 真机遇到的问题参考资料: 解决Mac上adb: command not found问题:https://blog.csdn.net/weixin_38327562/article/details/71057276 react-native run-android 报错:https://segm

appium 移动端自动化测试一

最近公司决定使用appium为主体框架做一个移动端得自动化测试系统,我会陆续记录项目得进展. 1.首先是appium环境得搭建, 需要安装appium-server ,appium-desktop, android-sdk 等一系列工具,编译工具我用的是IDEA  这些安装请自行百度. 已完成 2. 观看appium源码工程... 进行中 可以参考的几个范例: https://github.com/kinget007/UIAutoTest.git 搭建ios环境: https://testerh