Appium自动化
文章平均质量分 69
java2013liu
这个作者很懒,什么都没留下…
展开
-
Pyrcharm安装MySQLdb失败
pycharm安装MySQLdb原创 2022-06-29 14:29:47 · 1023 阅读 · 0 评论 -
[ddt02篇]十年测试老鸟帮您解析:ddt结合excel,csv,mysql实现自动化测试数据驱动
一、前言:阅读此文之前请先阅读:[ddt01篇]十年测试老鸟帮您解析:ddt数据驱动入门基础应用:二、ddt数据驱动框架结合txt文件实现数据驱动test_demo.py代码如下:import unittestfrom ddt import ddt, data, unpack #读取txt文件中的内容,strip()方法去掉首位的指定字符。def read_txt(): list = [] file = open('param.txt','r',encod转载 2021-03-25 17:56:09 · 247 阅读 · 0 评论 -
python 列表 字典转json
一、Dictionary 转为JSON将dict转为JSON,这里利用包jsonimport jsonaItem = {}aItem["id"] = "2203"aItem["title"] = "title"aItem["subTitle"] = "sub title"bItem = {}bItem["id"] = "2842"bItem["title"] = "b标题"bItem["subTitle"] = "b副标题"bItem["content"] = "内容"bIte转载 2020-08-11 18:21:47 · 742 阅读 · 0 评论 -
Appium自动化测试-------滑动屏幕如何定位定位元素
使用API Demo做演示,进入APIDemo中Views,然后滑屏寻找“Popup Menu”进行点击操作,但是不知道滑动多久,才能看到这个元素,该怎么定位呢?python代码:self.driver.find_element_by_android_uiautomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"Popup.原创 2020-05-26 17:48:33 · 2089 阅读 · 0 评论 -
Appium自动化测试-------xpath定位元素详解
前面也说过appium也是以webdriver为基的,对于元素的定位也基本一致,只是增加一些更适合移动平台的独特方式,下面将着重介绍xpath方法,这应该是UI层元素定位最强大的方法啦!以淘宝app为例,定位左上角扫一扫按钮1.如果元素text是唯一的,可以通过text文本定位 //*[@text=’text文本属性’]# 定位textdriver.find_element_by_xpath("//*[@text='扫一扫']").click()2.如果元素id是唯一的,也可..转载 2020-05-22 18:11:51 · 781 阅读 · 1 评论 -
基于python+appium+yaml安卓UI自动化测试
之前分享过一篇安卓UI测试,但是没有实现数据与代码分离,后期维护成本较高,所以最近抽空优化了一下。不想看文章得可以直接去Github,欢迎拍砖大致结构如下:结构.png testyaml管理用例,实现数据与代码分离,一个模块一个文件夹 public 存放公共文件,如读取配置文件、启动appium服务、读取Yaml文件、定义日志格式等 page 存放最小测试用例集,一个模块一个文件夹 results 存放测试报告及失败截图 report.p..转载 2020-05-21 18:31:43 · 316 阅读 · 0 评论 -
Python数据驱动DDT的应用
在开始之前,我们先来明确一下什么是数据驱动,在百度百科中数据驱动的解释是:数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。数据驱动测试注重于测试软件的功能性需求,也即数据驱动测试使软件工程师派生出执行程序所有功能需求的输入条件。这说的是什...转载 2019-10-18 11:09:08 · 617 阅读 · 0 评论 -
Appium----获取app元素属性值
元素的属性我们经常会用到,当定位到某个元素后,有时会需要用到这个元素的text值、className、resource-id、checked等。一般标准的属性我们都可以通过get_attribute(“属性名称”)来获取,我们来看看下面截图的元素都是怎么获取的吧。从上到下来看。我们从text开始讲,我们先通过xpath方式定位到这个元素获取text方法有:虽然有两种方法,但一般都...转载 2018-11-19 16:41:17 · 3121 阅读 · 0 评论 -
Android+appium +python 点击坐标tap方法的封装
当常使用的查找点击元素的方法name、id、classname等无法使用时,我们将会采取坐标的点击来实现操作,同样存在一个问题,当手机的分辨率、屏幕大小不一致时,坐标的定位也会不同,因此将采用相对坐标来实现点击。 1、appium/webdriver底层给出的写法示例如下,详细的方法介绍自行查看底层介绍,这里不给出说明。 :Usage: driver.tap([(...转载 2018-11-23 18:00:17 · 5625 阅读 · 1 评论 -
Appium----popupwindow控件元素无法定位
问题:下拉列表是一个弹出popupwindow,但是不能定位列表元素,定位显示的是底层元素的定位,红色标注就是底部元素的‘短信’按钮 解决:找到Android开发View contentView = LayoutInflater.from(mContext).inflate( R.layout.pop_window, null);con...原创 2018-11-23 17:56:46 · 1638 阅读 · 1 评论 -
Appium---app中H5页面的元素获取
1、网上百度到的:使用chrome-development tool 来定位元素:第一步:android手机连接PC, 并确保在cmd中输入adb devices 可以找到devices的序列号.第二步:打开APP的webview 页面。第三步:在 PC机的chrome 浏览器上输入如下地址(首先PC端要安装chrome浏览器): chrome://inspect/#device...原创 2018-11-15 17:10:01 · 4852 阅读 · 0 评论 -
Appium---app中H5页面中使用selenum获取定位元素30种方法
Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素才能进行后续的自动化控制,我在这里将对各种元素定位方式进行总结归纳一下。这里将统一使用百度首页(www.baidu.com)进行示例,f12可以查看具体前端代码。WebDriver8种基本元素定位方式find_element_by_id()采用id属性进行定位。例如在百度页面中...转载 2018-11-15 16:59:20 · 1387 阅读 · 0 评论 -
Appium自动化测试------app与webview切换访问
1、手机中存在H5页面,如下图2、通过命令:print driver.contexts,查看到页面中存在一个list:["NATIVE_APP","WEBVIEW_com.xxx.xxx.agent"]NATIVE_APP:这个就是native,也就是原生的WEBVIEW_com.xxxx :这个就是webview问题:当使用命令,打印不出来webview时,需要开发加上一...原创 2018-11-15 16:52:53 · 1291 阅读 · 0 评论 -
appium---通过xpath定位
实例1 通过“用户来源”找到“更多”,为什么这么找因为“更多”有好几个,且name和id都相同,通过id和name都不能准确定位driver.find_element_by_xpath("//android.widget.TextView[@text='用户来源']/../following-sibling::android.widget.LinearLayout/android.wi...原创 2018-11-08 16:48:56 · 1654 阅读 · 0 评论 -
appium1.8.1版本,每次运行appium时需要安装unlock,setting,inputmanager三个apk文件的解决方法
1、安装appium分两种,一种似直接安装的appium客户端,另一种是npm命令行安装,两种安装的目录是不同的,我的是命令行安装客户端安装目录一般在:命令行安装目录一般在:2、找到这个目录: 注释掉:await adb.install(unicodeIMEPath, {replace: false});await helpers.pushSettingsApp...原创 2018-10-29 15:09:59 · 779 阅读 · 0 评论 -
python glob模块
glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:"*", "?", "[]"。"*"匹配0个或多个字符;"?"匹配单个字符;"[]"匹配指定范围内的字符,如:[0-9]匹配数字。 glob.glob 返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配转载 2018-09-27 15:51:58 · 106 阅读 · 0 评论 -
sublime快捷键
1、多行缩进选中多行代码Tab 向右缩进Shift+Tab 向左缩进2、多行注释 Ctrl+/ 注释单行。 Ctrl+Shift+/ 注释多行。原创 2018-09-26 17:55:22 · 343 阅读 · 0 评论 -
Appium---如何高效组织自动化测试用例
如何高效组织自动化测试用例 自动化测试用例写多了,不可避免会遇到这个问题,每次运行无需运行所有的用例,那么如何把要运行的用例挑出来并高效组织它们呢?一般说来,通用的做法都是把要运行的用例用特殊标记Mark出来,然后框架运行时,自动寻找这些带标记的case,并把它们装到一个新的test suite里。所以高效组织测试用例的关键就是两部分:1. 如何标记待测试用例.2. 运行时...转载 2019-01-04 14:50:06 · 1188 阅读 · 1 评论 -
appium测试问题
问题1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress 之前的会话没有关闭,然后你又运行了测试实例,也没有设置覆盖. 解决: 1. 重新停止appium服务,开启Appium服务 2. 在Genarel Setting那里设置覆盖Se...转载 2018-05-23 09:00:54 · 650 阅读 · 0 评论 -
Appium-------测试用例集管理(多场景管理)
我们在一个项目中往往会出现成百个业务流,而且每一轮测试的侧重点不一样,有时个别场景不需要执行,那么我们就可以将该场景设置为不执行同样可以在Excel 中进行配置管理这里我新启一个Sheet 叫任务调度任务调度相当于一个总测试集运行模式字段置为No 是表示该场景不执行当置为Yes 时将这个套件名称带入到测试套件对应的Sheet 中最终整个框架串通效果是任务调度 ...转载 2019-06-12 16:31:20 · 725 阅读 · 0 评论 -
unittest----skip装饰器
当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例。或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没必要去执行了,直接跳过就行,节省用例执行时间。一、skip装饰器skip装饰器一共有四个 @unittest.skip(reason) Unconditionally skip...转载 2019-05-30 17:10:51 · 2734 阅读 · 1 评论 -
cmd中退出python的命令
命令行退出python方法2015年11月13日 14:01:10阅读数:21699在Windows中,按Ctrl+Z,再按yes再回车退出在Linux中,按Ctrl+D退出原创 2018-06-01 17:56:44 · 7450 阅读 · 0 评论 -
Appium---Python提示:TypeError: 'NoneType' object is not callable
问题:屏幕截图使用了@property def getImage(self): file_path = '..\\report\\jpg\\' print file_path timestrmap = time.strftime('%H%M%S', time.localtime(time.time())) screen...原创 2019-05-30 15:32:43 · 820 阅读 · 0 评论 -
Appium----Python_Api文档
1.contextscontexts(self):Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts 用法 driver.contexts2. current_contextcurrent_c...转载 2019-04-02 14:50:15 · 342 阅读 · 0 评论 -
Appium---py文件上传svn报错
问题:appium自动化代码提交到svn时,报错解决:当前的文档格式为:Windows格式,需要转为UNIX 格式其实这不能解决根本问题,根本问题是sublime 的换行格式默认是Windows,要设置成默认是Unix格式添加标红的地方即可,再新增加的问价换行格式就是unix格式了...原创 2019-03-27 15:40:02 · 206 阅读 · 0 评论 -
Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't
打开uiautomatorviewer 时报错:Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist! Error while obtaining UI hierarchy XML file: com.android.ddmlib.S...原创 2019-03-26 18:01:32 · 895 阅读 · 1 评论 -
Python保存时提示“SyntaxError: Non-ASCII character '\xe8' in file”
在文件头部加上:# -*- coding: utf-8 -*-或者是#coding=utf-8原创 2019-01-08 17:00:44 · 1556 阅读 · 0 评论 -
Appium---Pycharm修改字体和颜色
点击setting: 2、在弹出的界面中找到color scheme 当前显示的default,也就是默认的情况 当前我们选择:Monokai 3、修改字体大小 如图所示,我们在font中可以看到对文字大小的设置 我们设置字体为30 创建一个项目,进...原创 2019-01-07 15:14:44 · 1247 阅读 · 0 评论 -
Python unittest discover()方法与执行顺序
一、discover更多测试用例可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,让整体结构更加清晰但通过addTest()添加、删除测试用例就变得非常麻烦TestLoader 类中提供的discover()方法可以自动识别测试用例discover(start_dir,pattern='test*.py...转载 2019-01-02 17:55:39 · 632 阅读 · 0 评论 -
sublime中python的print中文乱码
工具 -> 编译系统 -> 新编译系统{ "cmd": ["python","-u","$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python&转载 2018-09-26 17:38:34 · 1186 阅读 · 0 评论 -
linux下tomcat、jenkins、pyhton环境搭建
需要以下几步:1.安装andriod sdk2.安装python3.安装node.js4.安装npm5.安装appium6.安装依赖库7.运行测试我的linux 系统版本:Redhat 51.安装andriod SDK这个没有太多需要说明的,如果需要可以参考:http://blog.csdn.net/catoop/article/details/76180992.安装P...转载 2018-09-07 10:27:46 · 382 阅读 · 1 评论 -
Sublime Text3安装SublimeREPL插件以及快捷键设置
1、Package Control*我是建议使用的是直接内置了Package Control的Sublime Text3在Sublime中,"Preferences"→"Package Control"(如果没有就意味着你ST里没内置这个,需要其他办法)输入Install Package或者直接点击上图鼠标所在的位置然后出现Loading repositories,然后输入sublimeREPL,...原创 2018-07-02 15:23:31 · 9436 阅读 · 2 评论 -
appium+python 自动化用例使用 unittest 测试套件
以前在testerhome上面看到一篇文章:2015年3月 新秀群作业-- Appium+Python+PO 设计模式 入门笔记(https://testerhome.com/topics/2226)感觉很棒,所以自己也照着这种PageObject的模式来写app的自动化用例,使用的是appium+python。但是现在遇到一个问题,实在不会处理。就是那些test_case,我在单独运行一个tes...转载 2018-06-29 18:48:37 · 2333 阅读 · 2 评论 -
python利用unittest进行测试用例执行的几种方式
利用python进行测试时,测试用例的加载方式有2种: 一种是通过unittest.main()来启动所需测试的测试模块; 一种是添加到testsuite集合中再加载所有的被测试对象,而testsuit里存放的就是所需测试的用例,下面分别列出3种方法的具体使用方式:1、通过unittest.main()来执行测试用例的方式:import unittest class UCTestCase(un...转载 2018-06-29 15:52:23 · 344 阅读 · 0 评论 -
Appium客户端-控制多台安卓设备执行的入门级实现
环境:win7 appium-desktop 夜神模拟器(多开器) 前言:在浏览了testerhome社区大量的关于Appium-grid的实现方式,鉴于博主刚刚入门appium,水平有限,还没有到去修改appium源码的能力,另外理想的情况实现应该是全命令行实现驱动appium server,然后模拟器执行测试,后面会继续研究更理想的情况夜神配置多安卓模拟器安装新...转载 2018-06-13 11:19:59 · 1712 阅读 · 1 评论 -
HTMLTestRunner的报告中文乱码
在学习python selenium自动化测试学习中遇到HTMLTestRunner测试报告出现乱码的问题解决办法:网上查找到HTMLTestRunner测试报告中文乱码的解决方案:(1)打开HTMLTestRunner.py源文件,找到如下行# o and e should be byte string because they are collected from stdout and std...原创 2018-05-23 18:25:37 · 1417 阅读 · 0 评论 -
python出现IndentationError: unindent does not match any outer indentation level
代码每行缩进的问题,使用的sublime,选中代码,能看到有tab缩进和空格缩进,这个必须统一才行,不能两种方式都用,全部改成空格缩进原创 2018-05-23 15:52:22 · 881 阅读 · 0 评论 -
Appium 启动服务并连接模拟器和真机方案
如果你已经搭建好Appium的环境后,接下来想对一款APP的进行自动化测试的话。那么首先得让appium连接你的模拟器或者真机。才能开展测试。本文尝试用不同的方式搭建连接。以适应不同人群的选择。希望有一种方法能够适合你。1、Appium连接sdk中的模拟器了解android的人都在知道,android sdk中自带AVD Manager(Android Virtual Device Manager...转载 2018-05-23 08:58:49 · 6533 阅读 · 0 评论 -
pip安装后为何无法使用pip命令
1、查看python的安装目录C:\Python27\Scripts下是否存在:如果存在证明添加成功2、添加目录【C:\Python27\Scripts;】到path3、cmd中使用:python -m pip install XXX即可原创 2018-05-15 14:28:29 · 13723 阅读 · 2 评论 -
unindent does not match any outer indentation level
python中出现IndentationError:unindent does not match any outer indentation level今天在网上copy的一段代码,代码很简单,每行看起来该缩进的都缩进了,运行的时候出现了如下错误: 【解决过程】 1.对于此错误,最常见的原因是,的确没有缩进。根据错误提示的行数,去代码中看了下,看起来没有什么问题...转载 2018-05-10 18:09:18 · 243 阅读 · 0 评论