1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.由于时间的关系,宏哥这里用代码给小伙伴演示两个模块:注册和登录. 2.业务模块封装 因为现在各种APP的层出不群,各式各样的.但是其大多数都有注册.登录.为了不要使小伙伴卡在入门处,所以宏哥在这里仅仅是给你打一个样,俗话说:师傅领进门修行靠个人.剩下的就靠童鞋们自己实现和学习了 2.1登录页面业务逻辑模块 思路: 1.首先定义封装一个登录类的视图 2.然后继承公共类的定位方法,定位账号和密码的输入框 3.在类…
简介 经过一段时间的准备,完善的差不多了,继续分享有关Appium自动化测试框架综合实践.想必小伙伴们有点等不及了吧! driver配置封装 kyb_caps.yaml 配置表 参考代码 platformName: Android #模拟器 platformVersion: 5.1.1 deviceName: 127.0.0.1:62025 #mx4真机 #platformVersion: 5.1 #udid: 750BBKL22GDN #deviceName: MX4 appname: kao…
1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.到今天为止,大功即将告成:框架所需要的代码实现都基本完成. 2.data数据封装 2.1使用背景 在实际项目过程中,我们的数据可能是存储在一个数据文件中,如txt,excel.csv文件类型.我们可以封装一些方法来读取文件中的数据来实现数据驱动. 2.2案例 将测试账号存储在account.csv文件,内容如下: account.csv hg2018 hg2018 hg2019 zxw2019 666 222…
1.简介 按照上一篇的计划,今天给小伙伴们分享执行测试用例,生成测试报告,以及自动化平台.今天这篇分享讲解完.Appium自动化测试框架就要告一段落了. 2.执行测试用例&报告生成 测试报告,宏哥已经讲解了testng.HTMLTestRunner.allure等等,今天就在讲解一个新的测试报告BSTestRunner.这个有的小伙伴有问到,所以在这里特地的给这部分的小伙伴们演示一下. 2.1 下载BSTestRunner 直接输入网址,下载后,引入项目中即可. BSTestRunner下载地址…
简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完整的python+appium自动化测试框架. 框架背景 前面我们已经学习了Appium各种元素定位,手势操作.数据配置.Pageobject设计模式等等.但是前面的功能都是比较零散的,没有整体融合起来,实际项目实践过程中我们需要综合运用,那么本章节我们将结合之前所学的内容,从0到1搭建一个完整的p…
1.简介 其实前边好像简单的提到过测试报告,宏哥觉得这部分比较重要,就着重讲解和介绍一下.报告是任何测试执行中最重要的部分,因为它可以帮助用户了解测试执行的结果.失败点和失败原因.另一方面,日志记录对于密切关注执行流程或在出现任何故障时进行调试很重要.默认情况下,TestNG 会为其测试执行生成不同类型的报告.这包括一个 HTML 和一个 XML 报告输出.TestNG 还允许其用户编写自己的报告程序并将其与 TestNG 一起使用.还有一个选项可以编写自己的记录器,TestNG 在运行时会通知…
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. Tips: 在 android_sdk/platform-tools/ 中找到 adb 工具,然后根据其具体的路径配置好环境变量.然后启动cmd 输入‘adb’即可查看是否配置成功. 有小伙伴会问,为什么我需要学习…
1.简介 TestNG还为我们提供了测试的记录功能-日志.例如,在运行测试用例期间,用户希望在控制台中记录一些信息.信息可以是任何细节取决于目的.牢记我们正在使用Selenium进行测试,我们需要有助于用户理解测试步骤或测试用例执行期间的任何失败的信息.在TestNG Logs的帮助下,可以在Selenium测试用例执行期间启用日志记录. 这一篇文章宏哥主要介绍利用TestNG中的Report类来实现简单的log输出,在TestNG中有一个Report的类,这个类的作用是,在添加了@Test的方…
简介 了解什么是接口和为什么要做接口测试.并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程.其实这些基本上在python接口自动化的文章中已经详细的介绍过了,不清楚的可以过去看看.了解了解.传送门 在这个系列宏哥想换一种方式来给小伙伴们讲解一下相关的知识.希望大家喜欢. 一.什么是接口 在这里我举了一个比较生活化的例子,比如我们有一台笔记本,在笔记本的两端有很多插口.例如:USB插口.那么这个USB插口是用来做什么的呢?比如我们可以插鼠标.插键盘.插U盘等等.为什么同一个USB…
1.简介 页面对象模型(Page Object Model)在Selenium Webdriver自动化测试中使用非常流行和受欢迎,作为自动化测试工程师应该至少听说过POM这个概念.本篇介绍POM的简介,接下来宏哥一步一步告诉你如何在你Java+Selenium3自动化测试框架中实现POM. 2.POM简介 Page Object Model (POM) 直译为"页面对象模型",这种设计模式旨在为每个待测试的页面创建一个页面对象(class),将那些繁琐的定位操作封装到这个页面对象中,…
1.简介 现在这篇,我们来学习TestNG.xml文件,前面我们已经知道,TestNG就是运行这个文件来执行测试用例的.通过本篇,你可以进一步了解到:这个文件是配置测试用例,测试套件.简单来说,利用这个文件,我们可以跑同一个类或者多个不同类里面的测试用例. TestNG通过设置testng.xml文件能做以下事情 1)创建来源不同包.类.方法的测试套件 2)包括一些选项,例如失败的用例可以重跑. 3)支持使用正则表达式 4)运行把外部参数传入测试方法 5)支持配置多线程的执行环境 testNG启…
简介 你有道灵光从天灵盖喷出来你知道吗,年纪轻轻就有一身横练的筋骨,简直百年一见的练武奇才啊,如果有一天让你打通任督二脉,那还不飞龙上天啊.正所谓我不入地狱谁入地狱,警恶惩奸维护世界和平这个任务就交个你了,好吗.这本如来神掌秘籍是无价之宝,我看与你有缘,收你十块钱传授给你吧.想必这段经典台词给为都可以的耳熟能详吧,宏哥,没这么牛叉呼啦带闪电,就是希望对你有帮助就可以了. 上一篇宏哥给小伙伴们介绍完定位工具这两个异性兄弟,这篇就给小伙伴们介绍一下定位方法.早就有小伙伴问,这个这个怎么定位,那个那个…
简介 乍眼一看,小伙伴们觉得这部分其实在异性兄弟那里就做过介绍和分享了,其实不然,上次介绍和分享的大哥是uiautomatorviewer,是一款定位工具.今天介绍的是一个java库,提供执行自动化测试的各种API. Android团队在4.1版本(API 16)中推出了一款全新的UI自动化测试工具UiAutomator,用来帮助开发人员更有效率的完成App的Debug工作,同时对于测试人员也是一大福音,为什么这么说呢?     QA:“那个谁谁谁,我刚刚操作的时候,我发现了一个bug,你写的A…
简介 前边具体操作和实战已经讲解和分享了很多了,但是一些android的一些基础知识,你又知道多少了,你都掌握了吗?这篇就由宏哥给小伙伴们既是一个分享,又是对前边的一次总结.为什么要对这些做一个简单的分享了,因为在现实具体工作中经常会遇到这样的问题,这里还是通过一个小故事来说明一下.   QA:“那个谁谁谁,我刚刚按照上一次那样操作这款款APP,我死活是跑不起测试脚本了.(内心独白:我去,这个奇怪的问题,一定是他给我的安装包有问题”) DEV:“嗯?还有这样的问题,那你看一下你手机和电脑连接好了…
操作事件简介 Monkey所执行的随机事件流中包含11大事件,分别是触摸事件.手势事件.二指缩放事件.轨迹事件.屏幕旋转事件.基本导航事件.主要导航事件.系统按键事件.启动Activity事件.键盘事件.其他类型事件.Monkey通过这11大事件来模拟用户的常规操作,对手机App进行稳定性测试.下面让我们来详细了解这11大事件. 1.触摸事件 触摸事件是指在屏幕某处按下并抬起的操作,可通过--pct-touch参数来配置其事件百分比.从Monkey执行该事件对外输出的日志可以看到. 该事件由一组…
简介 前边几篇介绍了Monkey以及Monkey的事件,今天就给小伙伴们介绍和分享一下Monkey的参数. 首先我们看一下这幅图来大致了解一下: 1.Monkey 命令 基本参数介绍 -p <允许的包名列表>       用此参数指定一个或多个包.指定包之后,monkey将只允许系统启动指定的app.如果丌指定包, monkey将允许系统启动设备中的所有app. 指定一个包:adb shell monkey -p com.shjt.map 100 指定多个包:adb shell monkey…
简介 大家对前边的自动化新建任务之后,接着对这个新建任务操作了解之后,希望带小伙伴进一步巩固胜利的果实,夯实基础.因此再在沙场实例演练一下博客园的相关接口.我们用自动化发随笔之后,要想接着对这篇随笔操作,不用说就需 要用参数关联了,发随笔之后会有一个随笔的 id,获取到这个 id,继续操作传这个随笔 id 就可以了(博客园的登录机制已经变了,不能用账号和密码登录了,这里用 cookie 登录) 大致流程步骤:web界面操作登录抓包查看cookie—>代码模拟cookie登录—>web界面操作新…
简介 本来最新的requests库V2.13.0是支持https请求的,但是一般写脚本时候,我们会用抓包工具fiddler,这时候会 报:requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) 小编环境:python:3.7 requests:2.21.0 fiddler:v5.0.20 python & requests: Fiddler: 一.S…
前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素 Mac版的appium1.6的版本在UI上有了很大的改变,本篇详细解决如何使用appium1.6定位iOS的app页面元素. 一.Start New Session 1.启动appium后点Start New Session 2.打开后看到如下界面,刚开始看到这个界面,我也比较懵. 二.Desired Capabilities…
前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素Mac版的appium1.6的版本在UI上有了很大的改变,本篇详细解决如何使用appium1.6定位iOS的app页面元素. 一.Start New Session 1.启动appium后点Start New Session 2.打开后看到如下界面,刚开始看到这个界面,我也比较懵. 二.Desired Capabilities 1…
本文转自:https://www.cnblogs.com/yoyoketang/p/7581831.html 前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素Mac版的appium1.6的版本在UI上有了很大的改变,本篇详细解决如何使用appium1.6定位iOS的app页面元素. 一.Start New Session 1.启动appium后点Start New Sessio…
Appium+python自动化8-AppiumPython API   前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts 用法 driver.contexts 2. current_context c…
前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itools安装.对于没有iPhone真机的小伙伴,想在iOS模拟器上安装app测试可不是那么容易的事情. 一.启动iOS Simulator 1.Xcode>Open Developer Tool>iOS Simulator,打开后在hardware里面选对应的iPhone版本就能启动模拟器了…
前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itools安装.对于没有iPhone真机的小伙伴,想在iOS模拟器上安装app测试可不是那么容易的事情. 一.启动iOS Simulator 1.Xcode>Open Developer Tool>iOS Simulator,打开后在hardware里面选对应的iPhone版本就能启动模拟器了…
前言 在夜神模拟器上输入中文,发现是乱码,将unicodeKeyboard和resetKeyboard参数设置为True了,发现还是没法解决. 打开手机设置语言和输入法,发现找不到Appium Android Input Manager for Unicode输入法导致的 相关环境: appium1.8.1 python3.6 手机使用夜神模拟器 遇到问题 加上unicodeKeyboard和resetKeyboard参数后,运行如下代码 # coding=utf-8 from appium i…
前言 MultiAction是针对多点触控操作的,是TouchAction的一个补充模块 TouchAction用法参考前面的一篇:appium+python自动化33-TouchAction 多点触控 多点触摸对象是触摸动作的集合. 多点触控手势只有两种方法,即添加和执行. add用于添加另一个触摸操作到多点触摸. 当perform执行被调用时,添加到多点触摸的所有触摸动作都被发送到AppII,并执行,就像它们同时发生一样.appium首先执行所有触摸动作的第一个事件,然后执行第二个,等等.…
前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以选择:templet和mako 简单来说,本篇实现的目的是用代码去自动生成代码,做到代码自动化 接着上一篇讲:appium+python自动化49-yaml管理定位元素 jinja2简介 1.jinja2官方文档:官方文档 jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一…
名称 链接地址 Appium+python自动化8-Appium Python API(上) http://mp.weixin.qq.com/s/WvpT5oRrYY22avI95FuypQ Appium+python自动化8-Appium Python API(下) http://mp.weixin.qq.com/s/rGWWf9m9-6n-J7KaGVlqoA Appium+python自动化9-SDK Manager http://mp.weixin.qq.com/s/wGyfXAwJ9M…
1.简介 在使用appium写app自动化的时候介绍toast的相关元素的定位,在Web UI测试过程中,也经常遇到一些toast,那么这个toast我们这边如何进行测试呢?今天宏哥就分两篇介绍一下. 2.什么是toast? Android中的Toast是一种简易的消息提示框.当视图显示给用户,在应用程序中显示为浮动.和Dialog不一样的是,它永远不会获得焦点,无法被点击.用户将可能是在中间键入别的东西.Toast类的思想就是尽可能不引人注意,同时还向用户显示信息,希望他们看到.而且Toast…
基于python实现的http+json协议接口自动化测试框架(含源码) by:授客 QQ:1033553122      欢迎加入软件性能测试交流 QQ群:7156436  由于篇幅问题,采用百度网盘链接分享的形式:    详情请点击: 基于python实现的http接口自动化测试框架.pdf…