appium

2020,6招玩转 Appium 自动化测试

南楼画角 提交于 2020-08-18 21:34:36
Appium是个什么鬼 Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的。可用于IOS和Android以及firefox的操作系统。原生的应用是指用android或ios的sdk编写的应用,移动网页应用是指网页应用,类似于ios中safari应用或者Chrome应用或者类浏览器的应用。混合应用是指一种包裹webview的应用,原生应用于网页内容交互性的应用。 重要的是Appium是跨平台的,何为跨平台,意思就是可以针对不同的平台用一套api来编写测试用例。 Appium环境搭建 先把一下环境装好备用 打开Appium 应用程序,点击3监测一下环境 红色框框代表iOS测试所需要的,绿色代表安装成功 开战实际项目开发 自动化测试项目搭建 .zip 是.app的压缩文件,当然你也可以直接用XXX.app (xcode编译项目,Products目录下有XXX.app) common 里包含着测试公用的.rb文件 gemfile 所需的gem包 spec 文件包含所有模块的测试rb文件 模拟器运行项目 配置appium APP路径要对 设备模拟器和版本匹配要对 红框内必选(boudleID也可以不写) 配置完点击=> 问号(inspector) 弹出inspector 视图元素检查页面 点击完Record 对于如何编写测试代码,两种方式

阿里云移动研发平台 EMAS 助力银行业打造测试中台,提升发版效能

人盡茶涼 提交于 2020-08-18 11:03:52
随着移动互联网的发展,手机银行凭借低成本、操作简单、不受时间空间约束等优势, 正逐步替代传统的网银交易方式。越来越多的银行开始了“ 业务移动化 ”转型之路,“手机APP”已经成为企业价值传递和关系维护的关键纽带,客户争夺的主战场已转向移动端,事实上手机银行的用户比例早已超越了网银用户。 但是伴随着银行APP承载的业务需求日益增多、版本迭代速度不断加快,以“ 手工测试 ”为基础的测试体系,已很难满足业务对测试效率和质量的要求。 APP 测试急需完成从“纯人工”到“人机协同”的范式转换。 一、银行 APP 的质量挑战 银行类APP所承载的业务,都是围绕“钱”展开,比如转账、理财、支付等核心功能,都不开“钱”。而在实际研发过程中,在确定的发版时间约束下,版本实际开发完成后,往往留给测试团队的时间很短,加上使用人工测试,功能覆盖面难以保障,且人工测试效率低下,导致版本发布后问题频出。 Top 10 金融 APP 测试通过率仅 52%,无响应、白屏、显示异常现象频出,导致用户体验差。 总结来说,银行在APP测试中,主要面临两大挑战: (1)功能测试场景:脚本自动化难、脚本维护复用难、参数管理难 (2)兼容性测试场景:没有足够多的机型覆盖 1.1、功能测试场景 1.1.1、“手工”测试难以应对业务快速迭代的挑战 业务需求多,发版节奏快 银行业务转型到手机APP后,APP 成为企业“链接

8年软件测试老鸟告诉你:软件测试必会技能

妖精的绣舞 提交于 2020-08-18 08:13:52
有很多刚入行的软件测试小白,认为软件测试就是功能测试,只需要不断的点点点就可以了,在加上入职的公司业务量不大,涉及不到压力测试、性能测试乃至自动化测试等,或者是因为你从事软件测试经验少,领导暂时只让你做功能测试,因此一直停留在小白阶段。如果想要成长和发展,想要跳槽到更好的“坑位”、更快地让领导重视你,给你升职加薪,就必须深造学习,那么我们先要弄清软件测试的级别和必会技能。 初级件测试工程师 这个欢迎在评论写出你的想法! 中级软件测试工程师:咱拿性能测试讲一下 中级涉及到了接口测试,压力测试,性能测试,自动化测试 性能测试是什么:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 性能测试的场景:一个B2C电商平台后台有库存管理,当一个用户在前端下订单后(待付款订单有效期内),库存做需要锁定一个商品,当第二个用户下单时看到的库存数是-1库存数,如果是5万用户同时购买这个商品下单呢(比如某宝的双11),我们的系统能否计算的过来,能否承的住呢,这些就涉及到了性能测试 高级软件测试工程师:简单来说:通过自动化脚本代替手工测试 高大上的自动化测试 还需要掌握以下技能: 测试用例编写 测试方法 缺陷管理工具使用 Loadrunner、JMeter工具等 Mysql、Ocrcel数据库操作 Linux常用指令、Linux环境搭建、Linux服务器性能监控等

《自拍教程76》Python 一键批量安装第三方包

时光怂恿深爱的人放手 提交于 2020-08-18 05:41:18
案例故事: 在测试环境搭建环节,尤其是需要在新的电脑上搭建Python测试环境时, 可以考虑把日常自动化测试所需要用到的第三方Python包(非自带内置包), 一次性批量安装上。 准备阶段 确保python及pip已经添加到了Path环境变量 可以利用os.system("具体命令")函数来实现批量安装 自动化测试人员,常用的第三方包如下表: 第三方包名 应用场景 requests 接口测试,文件下载,http访问 httprunner 自动化测试框架,更适合接口 selenium Web UI自动化 openpyxl Excel读写操作 robotframework 自动化框架,更适合移动终端或web UI自动化 appium-python-client App UI自动化 uiautomator2 Android App UI 自动化 locust Web 性能测试工具 flask Web框架,搭建测试环境用 django Web框架,搭建测试环境用 pillow 图片处理 pandas 数据分析 keyboard 键盘事件 python-jenkins Jenkins构建任务自动化 pyinstaller Py脚本编译成二进制可执行文件 python_docx Word读写操作 plotly 制图工具 pyserial 串口设备通讯 pymysql 数据库处理 MySQLdb

基于pytest实现appium多进程兼容性测试

依然范特西╮ 提交于 2020-08-17 18:18:50
前言 在实际工作中,如果要用appium实现多设备的兼容性测试,大家想到的也许是“多线程”,但由于python中GIL的影响,多线程并不能做到"多机并行",这时候可以考虑使用多进程的方式 为什么基于pytest 我们知道,pytest中的conftest.py可以定义不同的fixture,测试用例方法可以调用这些fixture,来实现数据共享。以前的框架的思路是:Common目录下的base_driver.py定义生成driver的方法-->conftest.py中调用前者生成driver-->TestCases下的测试用例调用fixture,来实现driver共享 。但是现在不同了,我们有多个设备,这些设备的信息如果只是单纯的写在yml中,我们并行去取的时候似乎也不方便,那可以写在哪里?conftest.py似乎也不是写设备信息的好地方,最后只剩下了main.py,而且将main.py作为多进程的入口再合适不过了 但问题又来了,如果我们想启动多个appium服务,需要考虑以下几点: appium通过什么方式启动? 设备信息如何传递给base_driver方法来生成driver 第一点很明确,客户端启动appium server的方式似乎有点不合时宜了,如果你要同时测5个手机,难道要一个个启动客户端吗?最好的方式是启动命令行,因为命令行启动更方便更快 再说第二点前,先整理一下思路

用python悄悄记录了室友的抖音在线时间

时光怂恿深爱的人放手 提交于 2020-08-17 17:03:14
今天给大家分享一篇有趣的文章,灵感来自于前几天与室友的聊天,他告诉我抖音可以实时显示人的在线情况,如下图: 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码! QQ群:1097524789 只需要进入抖音消息框,然后进入用户聊天窗口,就可以看到上述在线状态了。 然后我灵机一动,是不是用python可以实时监测一个人全天的在线情况? 说干就干,决定先拿我室友“开刀” 1.逻辑分析 俗话说,磨刀不误砍柴工,做任何事之前,都要先把逻辑分析清楚,要不然只会事倍功半。 起初本来想用手机模拟器来操作,但是不幸的是手机模拟器不显示在线状态,没办法,只能把自己的心爱的手机贡献出来了。 首先用appium客户端打开抖音(关于appium的安装和使用,请参考之前的文章),配置如图: 点击start session: 点击“消息”元素: 再点击进入聊天窗口: 显示在线状态元素的id为: com .ss .android .ugc .aweme :id/ blc 那么,我们只需要在当前页面一直请求获取该元素的值就可以获取该好友的在线状态了,如果返回“在线”,则判该用户在线;否则,判为不在线。 2

功能测试如何突破瓶颈——七年软件测试工程师经验分享

自作多情 提交于 2020-08-17 13:09:02
本文梗概: 1、测试人员的工作有哪些? 2、测试人员的必备技能有哪些? 3、资深测试员的心德体会。 做了那么久测试,你真的知道测试是做什么的吗? 测试人员的工作 看到这个问题,你是不是觉得有点傻?事实上,其实有很多与我们合作的同事并不清楚。下面我们以一个完整的项目,来介绍一下测试人员的工作究竟有哪些。 (1)项目立项,需求产出 很多人都在强调要测试前置,可是这是有条件的,如果你不按项目流程来走,都开发完相应的功能了才告诉测试,测试如何前置啊?所以在项目立项后,需求产出阶段要进行需求评审,确定好开发人员,测试人员,一起参与需求评审会议,此时三方人员根据各自的经验和专长,来讨论一下需求。开发从技术实现角度,测试从用户角度来对需求提出自己的意见,力争通过需求评审达到三方意见一致。一起排出项目周期及各个环节的关键日期,交付物等。 (2)需求开发,测试用例编写 在开发人员开发需求的时候,测试人员必须确定测试方案,编写相应的测试用例,通过xmind, excel编写冒烟测试用例,或者通过编码来编写冒烟测试用例,以供开发提测的时候进行自测;同时编写全面的测试用例,组织三方人员进行用例评审,进行测试必要的前期准备,如测试数据,测试环境等,监控项目周期各个环节执行的情况,如果出现任何风险及时预警。 (3)代码提测,测试阶段 在开发提测后,需要进行测试验收,验证冒烟测试用例的执行情况。如果冒烟测试通过

Appium+python自动化3-启动淘宝app

喜夏-厌秋 提交于 2020-08-17 03:57:00
前言 前面两篇环境已经搭建好了,接下来就是需要启动APP,如何启动app呢?首先要获取包名,然后获取launcherActivity。获取这两个关键东西的方法很多,这里就不一一多说,小伙伴们可以各显神通。小编这里主要给大家推荐一个sdk自带的实用工具aapt. aapt即Android Asset Packaging Tool,在SDK的build-tools目录下。该工具可以查看apk包名和launcherActivity,当然还有更多的功能,有兴趣的可以查看相关资料。 一、下载aapt 1.在android-sdk里面双击SDK-manager,下载buidl-tools 2.勾选build-tools,随便选一个版本,我这里选的是24的版本 3.下载完成后,在D:\androidsdk\android-sdk-windows\build-tools\24.0.0目录下找到aapt.exe,将这个路径设置环境变量,添加到path下 4.打开cmd。输入aapt出现如下界面,说明环境OK了 二、获取apk包名 1.将准备测试的APK放到D盘某个目录,如D:\test 2.打开cmd,输入指令aapt dump badging D:\test\xxx.apk(APK的全名,如手机淘宝.apk) 3.以手机淘宝.apk为例,如下图 4.这里就可以看到apk的包名:com.taobao

配置Appium环境避坑指南/为什么需要安装这些环境依赖

拈花ヽ惹草 提交于 2020-08-17 03:38:30
Appium环境安装是最坑的一部分,大多数人会死在安装环境的路上。只要你迈过这个坎,后面的代码编写压根不是事儿 安装环境需要: jdk(建议使用1.8版本) sdk(build-tools建议使用29以下版本) appium-desktop/appium-server+node.js(两者安装其一即可,推荐使用1.15版本) appium-python-client库(pip安装即可) 真机/模拟器 python/java环境(根据选择的语言安装相应的环境) 说一下为什么使用推荐版本,因为build-tools从30开始,appium有些地方不兼容,所以build-tools需要使用30以下版本。30以下版本依赖于jdk1.8,而appium目前最新版本1.17不稳定且部分依赖于jdk1.9,因此使用appium1.15版本为佳。总结:使用上述推荐环境基本不会出现问题。跟哥混,没错的! 再说一下我遇到过的坑,使用uiautomatorviewer.bat程序一闪而过,这一般是你的java环境或者android环境没配全。虽然你打adb,java -version能看到版本信息,但其实还是没配置齐全的。详细的配置信息网上有很多教程,百度一下你就知道。 这里我解释下为什么需要安装这些环境。这是一张Appium的工作原理图,最左侧的是代码编写区域,也就是我们编写代码的客户端

软件测试工程师应该怎样规划自己?成为年薪30W+测试工程师(乾坤未定,皆是黑马)

老子叫甜甜 提交于 2020-08-16 11:24:52
今天在知乎上被邀了一个问题,软件测试工程师应该怎样规划自己?16年毕业,技术方面已经渣到不行,因为之前的公司没有Python自动化测试这个要求,有些迷茫。我把我的问题回答贴出来希望可以帮助到更多有类型问题,迷茫中的测试人。 接触了不少同行,由于他们之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作5年以上的人。本人从事软件自动化测试已经近5年,从server端到web端,从API到mobile,切身体会到自动化带来的好处与痛楚,在此分享一下个人体会。从实习到毕业一直从事测试开发工作,比较喜欢这个岗位,同时对这个岗位的发展,相关的新技术保持着高度的关注。以我每次换工作都能涨薪40%以上的工作经历,来阐述一下软件测试岗在市场需求的现状。 16年毕业,预计是本命年左右,是一个突破契机。 软件测试工程师成长进阶分为八个阶段,正式进入: 一、互联网程序原理 自动化必经之路:互联网程序原理 Web前端开发基础:HTML、CSS基本内容学习。为什么测试课程有开发?对不起,如果不会,自动化可能不欢迎,很多自动化测试问题都出自于开发基础 Web前端开发脚本:JavaScript最主流的脚本学习,同样的,这也会在自动化测试中涉及,在一些工具中其实也经常用到动态脚本,也是JavaScript语言 开发者调试工具测试应用:虽然浏览器的F12被命名为开发者工具