appium

从快手薅羊毛说起之Appium/原生XCUITest/原生UIAutomator菜鸟级入门

故事扮演 提交于 2020-07-28 19:38:44
1. 需求 像这样进入某一个账号(一般是发的视频时间都比较长的号),每个视频停留60s,然后自动往后翻,赚取金币,小弟两个账号已经小赚500了,嘻嘻。 2. 实现 2.1原生XCUITest 首先配置好xcode开发环境。通过xcode建立新项目,选择Single View App后 勾选UI Tests 我们就可以在后缀UITests的文件夹下快乐的编写我们的UI自动化代码了 这儿我偷了个懒,需要程序打开程序后我们手动进入某一个账号,接下来就倒杯肥宅快乐水等着哗哗收钱了。 其实有兴趣可以让进入某一个账号这一个过程也自动化起来。最后选中这个Target执行Command+u就可以了。 2.2 原生UIAutomator 首先配置好AndroidStudio开发环境。接着就是我们熟悉的傻瓜式无脑操作,先建立一个空白的AndroidApp项目. 接着就是在androidTest目录下撸我们的代码。 直接在指定设备启动我们的测试用例就行了。 2.3 Appium之iOS 推荐配置Appium+iOS环境的文章: iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践 iOS 自动化测试踩坑(二):Appium 架构原理、环境命令、定位方式 Appium主要是借助WDA对ios设备进行UI控制。启动Appium Server后,此处利用pycharm编程。 2.4

appium---appium自动化原理

偶尔善良 提交于 2020-07-28 17:46:11
  这几天在群里也看到一个这样的面试题,appium的原理是什么?我们一直在思考如何编写自动化测试用例,但是却忘记了最基本的原理是什么。 Appium appium是一种开源的软件,跨平台(IOS、android),跨语言的自动换软件,不仅可以使用python,java编写测试用例,都可以进行运行。Appium使用的WebDriver的json wire协议来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架 更多介绍查看appium官网: http://appium.io/ Appium工作原理 1、Android设备 在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。另外由于UiAutomator对H5的支持有限,appium引入了chromedriv等来实现基于H5的自动化。 from appium import webdriver desired_caps = { ' platformName ' : ' Android ' , # 测试版本 ' deviceName ' : ' emulator-5554 ' , # 设备名 '

2020年软件测试工程师需要学什么技能

安稳与你 提交于 2020-07-28 17:42:56
一、2020年软件测试行业的现状 2020年开年,一不小心,【新冠】黑天鹅从头上飘过,持续影响全国乃至全球的经济,软件行业公司也迎来了不少的冲击,那么一个值得打算入行软件测试行业,或者已经在软件测试行业耕耘多年的老司机来说,2020年软件测试行业,还值得入行吗?这个行业将来又将如何发展呢?下面我谈谈我个人的看法。 二、2020年软件测试行业的趋势 鉴于笔者从09年入行IT行业,经历了09年只有开发没有测试的阶段,经历了14年只要会基本的功能测试在一线就能薪资过万的阶段,经历了17年只要会一点自动化,会一点性能就能蒙骗过面试官的阶段,更经历了19年所有面试官对于求职者的要求逐步提高,开始思考这个求职者当前具备的技能是否值得培养,工作态度,技能背景是否能够快速满足岗位需求的阶段,那么2020年软件测试行业又将是一个怎样的趋势呢? 相信从10年的市场变化,不难猜出2020年技术薄弱的测试工程师会逐渐被淘汰出局. 一波测试工程师的失业潮是在所难免的 虽然笔者我也一直在呼吁身边的朋友赶紧脱离落后的测试技能, 赶紧走入前沿的技术领域,但是看到很多人还是在原地踏步,他们生活越来越艰难, 工作也是犹如鸡肋,行尸走肉,得过且过也是挺着急的。从主流的招聘网站也能看出来初级测试岗位在减少,但是高级测试工程师的需求反而越来越多,职位薪资也是越来越高, 由此看出测试行业在向正规化,国际化发展

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

好久不见. 提交于 2020-07-28 03:34:33
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 对于如何编写测试代码,两种方式

软件测试面试题(2)

柔情痞子 提交于 2020-07-27 08:28:55
  经过前面总结的面试题,看到留言和私信都觉得还不错,这里安静在总结一些亲身经历的面试题 1、启动多个app同时运行用例怎么做?代码如何实现? 通过python进行对启动命令行appium进行封装,然后通过多线程的方法进行启动appium进行执行多台手机操作。具体代码: appium---多线程启动app(多台设备启动app) 2、unittest如何操作它的执行顺序 unittest本身执行是无序的,我们可以通过进行创建名称是进行判断执行顺序,也可以通过unittest中的TestSuite来进行添加执行的用例。具体操作: unittest---unittest多种加载用例方法 3、unittest中能否进行更改执行规则?不已test开头的方式? 我们如果仔细阅读过unittest的方法就可以发现,其实是可以进行在源码中修改的。 4、postman中的断言如何操作? postman的断言是通过javaScript来编写的,postman中有个Tests,我们可以在里面进行添加断言,也可以通过javaScript代码进行自己编写断言。具体操作: postman---postman增加断言 5、unittest的弊端? unittest目前不支持用例失败重跑,需要进行二次开发 6、通过学生,班级,科目,分数,学期这些你如何创建数据表? 这里可能就考察数据库的能力和业务逻辑流程了

如何学习自动化测试?——手工测试转向自动化测试?

浪子不回头ぞ 提交于 2020-07-27 04:10:10
我在百度搜索了一个问题,自动化测试——这个是关键词。跳出来的一个问题:如何学习自动化测试?我觉得这个文章写得很不错,我就转载加入自己对于自动化测试的一些想法,写下来分享给大家。希望对测试人有帮助。 问: 作为一个测试人员,从业年期从事手工测试的工作是没有太多坏处的,当然,如果一直点来点去那么确实自身得不到提高,这时候选择学习自动化测试是一件很有必要的事情,一来将自己从繁重的重复工作中解放出来,从事一些更有挑战的工作,二来能积累技术知识,厚积薄发完成飞跃,那么技术新人该如何学习自动化测试呢? (看得出来提问的朋友,和我们很多的朋友都是有一样的情况,就是对于如何学习自动化测试有些迷茫) 1.万事开头难,希望你可以勇于踏出第一步,学习python基本语法。 2.到国内一些可以做练习的网站。(链接就不放了,可以百度) 学习HTML/CSS下的html、xml、webservice三个教程。 3. 然后下一个python的requests库学习写最简单的网络爬虫。博客园、知乎上爬虫教程一大堆。这一步是一个转折点,会有一种有点懂但又不是很开窍的意思。写简单的东西有一定的成就感,但是有不知道复杂的接口的缘由,同时还学到了怎么解析一个页面。 4.学习Python的测试框架unittest,了解一下怎么用unittest和python的mock模块写一个小单元测试。 5.把3和4结合起来

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

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

求职季&毕业季|软件测试大厂面试技巧大公开!

你说的曾经没有我的故事 提交于 2020-07-23 23:07:33
毕业季,一大波求职者来袭,你是不是每次面试的时候,都漏洞百出,感觉没有回答好面试官的问题, 不打无准备的仗。 这是我一直坚信的道理,特别是针对改变人生的重要转折点,更应该从前期开始筹划。 今天借此机会,跟大家分享软件测试大厂面试的几点经验,总结出来就是:面试前做好资料准备,知已知彼。 1、自我介绍 相信大家一定很不喜欢这个开场白,但是呢,面试都是从千篇一律的自我介绍开始的,HR主要是想通过你的自我介绍,快速的了解一下你这个人,是不是跟公司的要求想符合。 所以大家可以从这些方面组织语言:从业时间 、教育背景、工作经验 、项目经验 、擅长技能、你的性格,尽量与个人简历相一致 下面以XX的学员为案例: 你好,我叫XX,来自XXXX,在XXX学院计算机专业毕业,从毕业至今在XXX公司从事软件测试工作1年半。 我们做的项目主要是XXX,是一个XXX的系统平台,涉及模块主要是XXX。项目中我负责过web及app功能测试、接口测试、压力稳定性测试。(跟简历项目一致)、能独立搭建测试环境。 熟悉测试工具jmeter、soapui、loadrunner Fiddler Appium Monkey Postman…等的使用。(这些以测试人追风来讲的,大家根据自己的实际情况来,会几种说几种,因为后期会问你相关的技术问题) 也有过开发的经验,擅长c/c++、Java、JavaScript编程语言

How to tap and hold (Long press) using appium for Android?

心已入冬 提交于 2020-06-24 10:19:50
问题 Is there any code to tap and hold on Appium? i use python , is there any command to support it ? For double click i used click on element twice, for tap and hold i am not getting any solution 回答1: Yes, you can use TouchAction class to longPress any element. Try this: TouchAction action = new TouchAction(); action.longPress(webElement).release().perform(); 回答2: Need to pass driver TouchAction action = new TouchAction(driver); action.longPress(webElement).release().perform(); 回答3: In latest

UndefinedStepException when run test using Cucumber JVM

血红的双手。 提交于 2020-06-16 17:10:07
问题 I develop a test for the mobile application using Cucumber+Junit+Appium. When I try to run a test using cucumber and JUnit runner I receive: io.cucumber.junit.UndefinedStepException: The step "I install the application" is undefined. You can implement it using the snippet(s) below: I tried some of the solutions from the medium blog and stack question, but this doesn't help. I have a project structure: src |-main |--java |---{project-name} |----config |----models |----screens |----services |