app自动化测试过程中,经常会遇到滑动屏幕操作,appium框架的话我们可以使用webdriver提供的swipe()方法来对屏幕页面进行上滑.下滑.左滑.右滑操作. 一,swipe方法介绍 swipe()方法源码如下: swipe()方法的参数说明: start_x:起始横坐标 start_y:起始纵坐标 end_x:结束时横坐标 end_y:结束时纵坐标 duration:滑动持续时间,单位毫秒,默认None(一般设置500-1000毫秒比较合适) duration参数需要注意的是,在移动设…
做APP的UI自动化测试时,我们往往会使用真机跑自动化测试脚本,因为这样才是最真实的使用场景.但前期调试脚本的话,可以先使用模拟器,这样相对更加方便. 不推荐使用Android SDK里自带模拟器,太卡. 这里介绍两款我正在用于做自动化测试的模拟器:Genymotion 与 夜神模拟器. 一,Genymotion 1,注册账号 使用Genymotion时需要登录账号,我们需要去Genymotion官网注册账号. 官网地址:https://www.genymotion.com/ 官网首页点击[Si…
用python+appium做appUI自动化测试,系统为Windows.首先是JDK与Android SDK的安装与环境变量的设置. 一,安装JDK,配置JDK环境变量 1,下载jdk jdk8官网下载地址: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 选择对应的系统下载,我的电脑是Windows64位所以选择红框标注的安装包下载. 官网下载需要创建登录Oracle账号,下面提供一个网盘下…
一,前言 在之前的appium自动化测试示例中,我们都是把构造driver实例对象的数据(即Desired Capabilities)写在业务代码里,如下: # -*- coding:utf-8 -*- # @author: 给你一页白纸 from appium import webdriver desired_caps = { "platformName": "Android", "platformVersion": "10"…
在appium自动化测试脚本运行的过程中,因为网络不稳定.测试机或模拟器卡顿等原因,有时候会出现页面元素加载超时元素定位失败的情况,但实际这又不是bug,只是元素加载较慢,这个时候我们就会使用元素等待的方法来避免这种情况,增加代码的健壮性. 一,元素等待方法 1,强制等待 import time # 强制等待5s time.sleep(5) 2,隐式等待 implicitly_wait()是由webdriver提供的隐式等待方法,它不是针对某一个元素,而是针对当前session(即当前drive…
滑动屏幕方法swipe一般用于对页面进行上下左右滑动操作,但自动化过程中还会遇到其他情况,如对控件元素进行滑动.拖拽操作,九宫格解锁,手势操作,地图的放大与缩小等.这些需要针对控件元素的滑动操作,或者点至点.元素至元素之间的滑动操作,使用swipe方法显然不是很方便,这时候就可以用到appium里提供TouchAction类和MultiAction类. 一,TouchAction类 1,TouchAction类由webdriver库提供,提供以下方法: tap(self, element=Non…
swipe Appium使用滑动操作用到了swipe方法,定义如下: swipe(self, start_x, start_y, end_x, end_y, duration=None) 从一个点滑动到另外一个点 start_x 是开始滑动的x坐标, start_y 是开始滑动的y坐标 end_x 是结束点x坐标,end_y是结束点y坐标 duration是持续时间,单位毫秒,可以不填,一般设置为500-1000之间吧 #水平向右滑动 比如driver.swipe(100,500,600,500…
一,问题 app自动化测试使用Android真机连接电脑时,通常会遇到两种情况: 1.测试机连接电脑会弹窗提示USB选项,选择USB用于"传输文件",有些手机不支持设置默认USB选项,手机重新连接电脑时都需要手动点击选择USB选项: 2.使用adb命令在真机上安装app时,需要手动点击确认安装按钮. 二,思考 每天定时唤醒手机执行自动化测试时,偶尔会遇到真机重新弹窗提示进行USB用于选项的选择,需要选择USB用于传输文件,否则会执行失败.为了能让手机自动选择USB用于传输文件,我们考虑…
基础背景: windows7系统 +python3.4版本 环境搭建目标: 使用python编写app自动化测试脚本并成功执行. 搭建步骤:   1.安装python3,安装步骤详见:https://baijiahao.baidu.com/s?id=1605684471000597023&wfr=spider&for=pc,注意安装完后配置环境变量. 2.安装python编译器pycharm,安装步骤详见:https://www.cnblogs.com/dcpeng/p/9031405.h…
一,前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位toast或者获取toast的文案进行断言,如下图,通过定位"登录成功"的toast就可以断言今日头条登录用例是否通过.但toast区别于控件元素,无法获取焦点,不能通过uiautomatorviewer.bat.appium.weditor等工具定位,因此我们就需要通过别的方法来定位. 二,环境 windows 10 Android 10 appium 1.18.0 (desktop) selen…
app自动化测试的第一步,是启动被测app.appium环境搭建好后,我们就可以连接真机启动app了.环境为windows,Appium1.18.0,Android手机,被测app为今日头条app,让我们开始吧. 一,连接手机(测试机) 通过USB线连接Android手机和电脑,打开手机的开发者模式,开启USB调试模式(方法自行百度). 打开cmd输入命令adb devices,显示连接手机的udid即为连接成功. 输入adb devices后如果List of devices attached…
一,selenium模块的两种截图方法 get_screenshot_as_file(filename) 参数filename为截图文件保存的绝对路径,如: driver.get_screenshot_as_file(r'E:/test_project/screenshot/test_01.png') save_screenshot(filename) 该方法与get_screenshot_as_file()不同的是,参数为文件名称,保存当前屏幕截图到当前脚本所在的文件,如: driver.sa…
之前一篇博客已经讲述怎样手动使用appium-desktop启动测试机上的app,但我们实际跑自动化脚本的过程中,是需要用脚本调用appium启动app的,接下来就尝试写Python脚本启动app并登陆app.环境为Windows10 + Python3.7 + appium1.18.0 + Android手机 + 今日头条app + Pycharm 一,连接测试手机,获取测试机及被测APP配置 具体的获取方法请参考APP自动化测试之appium连接真机启动app,配置信息如下: { "plat…
#coding:utf-8 from appium import webdriver from time import sleep import random desired_caps={ "platformName":"android", "platformVersion":"7.1.1", "deviceName":"your_device_name", "appPacka…
在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素. 1,通过绝对坐标定位(不推荐) 在手机(或模拟器)的开发者选项里打开指针位置,任意点的绝对坐标都能获取到,如下A点的坐标为(542, 1362) 2,通过相对坐标定位(推荐) 更换不同分辨的测试机后,之前获取的手机某个位置点的绝对坐标就会改变,这样每次更换测试机都需要更改坐标,显然是不方便代码的维护,所以就需…
appium做app自动化测试过程中,有时需要获取控件元素的坐标进行滑动操作.appium中提供了location方法获取控件元素左上角的坐标,再通过size方法获取控件元素的宽高,就可以得到控件元素更多的坐标. 一,获取元素坐标的方法 1,size获取元素的宽.高 ele_size = driver.find_element_by_xx('xx').size # 元素的宽 width = ele_size['width'] # 元素的高 height = ele_size['height']…
对于Android而言,查找appUI界面元素属性的工具有三种:appium desktop,uiautomatorviewer.bat,weditor.之前已经介绍过了weditor的使用,这里我将通过使用uiautomatorview工具查看元素的属性值,来介绍Android app通过appium进行元素定位常用的几种方法. 一,使用uiautomatorview对app页面截图,查看元素属性 连接Android手机 在Android SDK的目录里的tools文件夹中找到uiautoma…
一,weditor的安装与使用 首选需要在电脑上配置好Python环境 下载安装命令如下,加上镜像下载速度更快: pip install weditor -i https://pypi.tuna.tsinghua.edu.cn/simple 启动weditor命令: python -m weditor 此时会打开浏览器新建窗口如下 连接手机.输入adb devices命令,获取手机的设备id 在浏览器editor页面,选择Android,输入手机的设备id,点击Connect按钮.按钮出现绿叶小…
简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完整的python+appium自动化测试框架. 框架背景 前面我们已经学习了Appium各种元素定位,手势操作.数据配置.Pageobject设计模式等等.但是前面的功能都是比较零散的,没有整体融合起来,实际项目实践过程中我们需要综合运用,那么本章节我们将结合之前所学的内容,从0到1搭建一个完整的p…
真的感谢@虫师 这位来自互联网的老师,让我这个原本对代码胆怯且迷惑的人开始学习自动化测试. 一开始搜索自动化测试的时候,虫师的博客园教程都是在百度的前几位的,我就跟着虫师博客园里面的教程学习.后来学seleinum听说他出书了<python+selenium>的这本我买了也学习了,是这本书带着我这个代码小白入门的,其实很多事情不愿意开始就一直不会开始,一旦开始了,可能也没有当初想的那么难.最近想学习下appium的时候发现他还有一个专门针对测试的网页http://www.testclass.n…
Python Appium 滑动.点击等操作 1.手机滑动-swipe # FileName : Tmall_App.py # Author : Adil # DateTime : 2018/3/25 17:22 # SoftWare : PyCharm from appium import webdriver caps = {} caps['platformName'] = 'Android' caps['platformVersion'] = '6.0' caps['deviceName']…
1.简介 按照上一篇的计划,今天给小伙伴们分享执行测试用例,生成测试报告,以及自动化平台.今天这篇分享讲解完.Appium自动化测试框架就要告一段落了. 2.执行测试用例&报告生成 测试报告,宏哥已经讲解了testng.HTMLTestRunner.allure等等,今天就在讲解一个新的测试报告BSTestRunner.这个有的小伙伴有问到,所以在这里特地的给这部分的小伙伴们演示一下. 2.1 下载BSTestRunner 直接输入网址,下载后,引入项目中即可. BSTestRunner下载地址…
Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况. 当页面元素id变化时,只需要更改测试页Class中页面的属性即可. Page Object模式是一种自动化测试设计模式,将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),提高…
基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unittest.TestCase): """appium测试类""" def setUp(self): desired_caps = { 'platformName': 'Android', 'deviceName': 'Android Emulator',…
appium做app自动化测试,环境搭建是比较麻烦的. 也是很多初学者在学习app自动化之时,花很多时间都难跨越的坎. 但没有成功的环境,就没有办法继续后续的使用. 在app自动化测试当中,我们主要是通用电脑端的python代码,能够驱使手机端的app去进行操作. 比如打开一个app,输入用户名和密码,进入登陆操作. 由于电脑端和手机端是两个独立的设备. 要实现数据通信,就需要将二者连一起. 因此对于真机用户,需要用USB线连接手机和电脑,并且在开发者选项当中,开启USB调试模式. App自动化…
最近有一个页面的内容很多,有的元素需要滑动到底部才能看到,所以就研究一下滑动,下面是我学习到的两种滑动方式 一:用js滑动 用js滑动的思路是很简单,首先是先定位到这个元素,定位到之后不做任何操作,然后把Driver实例化为js对象,之后运用 executeScript()方法进行滑动, 具体代码如下面所示: WebElement ele=driver.findElementByLinkText("联系我们");//定位到元素 System.out.println(ele);//打印出…
初次尝试使用jenkins+python+appium构建自动化测试 因为刚刚尝试使用jenkins+python+appium尝试,只是一个Demo需要很多完善,先记录一下今天的成果,再接再厉 第一步:在本地的window系统安装jenkins 1)    Jenkins下载地址:http://mirrors.jenkins-ci.org 2)    启动jenkins:java –jar Jenkins.war 3)    使用chrome浏览器打开127.0.0.1:8080/ 备注:我本…
首先申明本文是基本于Python与Android来快速搭建Appium自动化测试环境: 主要分为以下几个步骤: 前提条件: 1)安装与配置python环境,打开 Python官网,找到“Download”, 在其下拉菜单中选平台windows,最好选择python 3,根据你的电脑选择x86或者x86-64,一般选择executable 可执行文件(.exe)方式安装,在安装的过程中需要勾选:“Add Python 3.x to PATH” ,会自动帮你添加python环境变量, 如果没有勾选,…
基于Appium.Python的自动化测试环境部署和实践   第一章 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员.开发人员等提供参考. 1.2 预期读者 自动化测试人员.测试代表.开发人员等. 第二章 概述 2.1 Appium设计哲学 不需要为了自动化而且重新编译或修改测试app: 不应该让移动端自动化测试限定在某种语言和某个具体的框架:也就是说任何人都可以使用…
本文基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unittest.TestCase): """appium测试类""" def setUp(self): desired_caps = { 'platformName': 'Android', 'deviceName': 'Android Emulator…