Python+appium框架原生代码实现App自动化测试详解


Posted in Python onMarch 06, 2020

step1:首先介绍下python+appium的框架结构,如下截图所示

Python+appium框架原生代码实现App自动化测试详解

(1):apk目录主要放置待测app的apk资源;

(2):config目录主要放置配置文件信息,包含:数据库连接配置、UI自动化脚本中所需的页面元素信息及app启动信息、自动化报告邮件发送配置信息、接口请求的对应的url信息等【大家可根据待测app的功能添加或减少配置文件信息】。

(3):report目录主要放置测试完成后生成的测试报告信息;

(4):src目录下包含的目录如下

common目录:app启动方法的封装文件信息;数据库增删改查实际方法的封装文件信息;读取config配置文件中元素信息的工具类方法;日志类的封装方法;发送邮件的配置文件信息【大家可根据待测app的具体功能添加或减少公共方法类】;

functions目录:对于自动化测试过程中需要对页面元素进行获取的方法工具类的封装;

log目录:每次执行测试脚本后生成的日志信息会存放到该目录下;

runner目录:生成测试报告的公有方法的引用;自动化脚本的批量执行配置信息;

testcase目录:待测app具体的需测试功能点的测试脚本代码信息;

step2:接下来介绍的是框架目录下每个文件的具体内容

Python+appium框架原生代码实现App自动化测试详解

(1):依据上面截图可对应到step1中描述的各个目录下所包含的文件的具体功能;

(2):常用的方法就不再赘述,下面将介绍几个不常见的.py文件进行具体内容的详细讲解:

【1】config目录中的element.ini文件内容如下(主要存放页面元素信息):

Python+appium框架原生代码实现App自动化测试详解

上面截图中展示的是登录被测app时,需要获取到页面上的元素的信息,可以使用id,class,xpath等方法,具体的定位元 素的方法可以依据待测app来选择,只要可以获取到元素信息即可(请按照截图中的格式来定义)。

【2】src目录下common目录下的appium_start文件内容如下(appium服务启动封装文件):

Python+appium框架原生代码实现App自动化测试详解

该文件会引用iniHelper文件对element.ini文件页面元素信息的获取信息,来获得启动时必需的参数信息,后面会具体贴出 iniHelper文件的内容,建议大家动手敲下示例代码,印象会更深刻。

【3】src目录下common目录下的iniHelper文件内容如下(读取ini配置文件工具类):

Python+appium框架原生代码实现App自动化测试详解

该.py文件中iniHelper方法主要是获取ini配置文件中单个属性的值;

该.py文件中ini_sections方法主要是获取ini配置文件中某个功能模块所有的属性名称和对应的值,以字典的格式返回结果;

【4】src目录下functions目录下的baseAction文件内容如下(页面基本元素获取方法的封装):

Python+appium框架原生代码实现App自动化测试详解

该文件内容对于页面元素定位的方法进行封装,此示例共例举了7种元素定位方法,在测试过程中如果有其他定位方法可自行添加到该方法中。

【5】src目录下testcase目录下的app_checklist文件内容如下(具体待测功能的自动化脚本编写):

Python+appium框架原生代码实现App自动化测试详解

此处示例以登录功能为例,先获取登录所需元素信息,包含基本的用户名和密码、登录提交等元素信息,获取到元素信息后再对元素进行模拟操作,如:直接点击、输入测试数据、清除测试数据等操作,登录完成后需要校验是否登录成功,并记录相应的日志信息。

step3:整体思路说明:

(1):使被测功能的脚本代码更加简洁,方便维护脚本,需要将测试数据与程序进行分离;

(2):页面元素信息可以封装到配置文件中,并封装对应的读取配置文件的方法,在测试脚本需要使用时直接调用;

(3):公共方法类,如:数据库连接配置信息及对数据库进行增删改查操作时,都可以封装到公共方法中,便于维护,使用时直接引用即可;

(4):具体实际操作过程中,可以依据具体测试需求对框架作出相应的调整,目的是让脚本更加清晰化,且便于维护,易于推广给测试同行使用;

(5):阅读过程中有任何疑问随时欢迎大家沟通、交流;

以上这篇Python+appium框架原生代码实现App自动化测试详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过ElementTree操作XML获取结点读取属性美化XML
Dec 02 Python
python读取json文件并将数据插入到mongodb的方法
Mar 23 Python
Python3访问并下载网页内容的方法
Jul 28 Python
python如何通过protobuf实现rpc
Mar 06 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
Django中ORM找出内容不为空的数据实例
May 20 Python
Tensorflow加载Vgg预训练模型操作
May 26 Python
浅析Python中字符串的intern机制
Oct 03 Python
python单元测试之pytest的使用
Jun 07 Python
python使用paramiko实现ssh的功能详解
Mar 06 #Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 #Python
Python object类中的特殊方法代码讲解
Mar 06 #Python
python+Selenium自动化测试——输入,点击操作
Mar 06 #Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 #Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
Mar 06 #Python
python解析xml文件方式(解析、更新、写入)
Mar 05 #Python
You might like
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
一个没有MYSQL数据库支持的简易留言本的编写
2006/10/09 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
jQuery select控制插件
2009/08/17 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
python与caffe改变通道顺序的方法
2018/08/04 Python
Python数据类型之List列表实例详解
2019/05/08 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
python 消费 kafka 数据教程
2019/12/21 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
护士辞职信模板
2014/01/20 职场文书
致接力运动员广播稿
2014/02/17 职场文书
优秀党员个人总结
2015/02/14 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
2015入党个人自传范文
2015/06/26 职场文书
七一表彰大会简报
2015/07/20 职场文书
三十年同学聚会感言
2015/07/30 职场文书
2016中秋节广告语
2016/01/28 职场文书
工程移交协议书
2016/03/24 职场文书
Mysql文件存储图文详解
2021/06/01 MySQL
React自定义hook的方法
2022/06/25 Javascript