python+appium学习总结
经过了这个月的学习,今天终于完成了公司APP系统的自动化的脚本的编写。
通过单元测试框架UNITTEST,进行脚本的连跑,本来还想把测试数据统一写到EXCEL表格内,实现脚本与数据的分离。
后来发现增加了很多的工作量,这个时间投入的不值得,性价比不高。
因为使用的是APPIUM在模拟器中操作,所以脚本运行速度,远不及selenium运行速度快,同时,维护难度增加,脚本连跑时,因为受到系统影响,
连跑报错率很高,需要多跑几次,才能全部跑通。
最近把时间与精力都投入到APPIUM+python的学习上。发现难度一开始就在环境的搭建上,环境虽然是有固定的操作步骤,
但是要求对APP或CS架构有一定的基础知识,需要了解安卓的SDK,IOS的相关知识。
同时,定位难度也明显高于selenium的谷哥开发者工具,APPIUM我使用的是UIautomator viewer定位工具,用起来非常的不方便,最头疼的不是定位的方法,而是一碰到
页面有动态元素,ui automator viewer就报错。
中途也听说了也可以翻墙用谷哥的开发者工具来定位,自己还没有尝试,不下结论。
后期会尝试一下。
我讨厌我现在用的五笔输入法,真的很烂。测试肯定没有测试到位。
下面说一下,我用python+appium做自动化的时候,主要的实现步骤以及自己的思路。
前提是环境,模拟器等都正常工作了。
首先:先写一段脚本,根据系统的一个子模块,或者其中的一个流程(这个流程是后期整个自动化的一个demo,是一个雏形)
其次:再写第一个demo的时候,基本上可以确定哪些地方可以参数化,(既可以用函数来实现,哪些地方写死。个人理解,自动化,核心是unittest框架,可以组织,执行,判断用例等。其次,最重要的就是参数化了。剩下就是复制脚本,维护脚本了。脚本的范围根据实际需求来)
再次:根据已写好的脚本,完成剩下的自动化脚本的编写,其中不断完善,提高,维护,直到满意,合格为止。(看样子要求真低)
我操作的时候,每次写好一个完整的脚本,都会测试跑一遍,就是这样反复多次,不断调试,不断优化,最终合格为止。
总结:
1,根据需求,确定自动化的范围。
2,根据范围编写脚本,确定参数化对象。
3,通过unittest单元测试框架,组织,执行,判断用例。
4,得出报告,发现问题。
5,持续集成,(此步骤在公司没有操作,只有我一个自动化测试,另外开发用的是JAVA语言,我用的是python语言)
另外,appium没有把数据与脚本进行分离,主要考虑性价比不高,脚本没有pc端开发的脚本稳定,为了减少错误,就没有操作这一步。(这一步有好处与不好的地方,具体自己权衡。)
python+appium学习总结的更多相关文章
- Python+Appium学习之启动手机APP或者浏览器
一.启动浏览器:pycharm中python脚本如下: from appium import webdriver desired_caps ={ 'platformName':'Android', ' ...
- Python+Appium学习篇之WebView处理
1.认识WebView 实例说明: 当你打开百度阅读APP→VIP全站去广告→用自带的 UI Automator去定位里面的元素,如图: 不管你去定位 '规则详情' '开通'等等,都会定位不到,只 ...
- python+appium学习之swipe
#coding:utf-8 from appium import webdriver from time import sleep import random desired_caps={ " ...
- Appium学习实践(二)Python简单脚本以及元素的属性设置
1.简单的Python脚本 Appium中的设置与Appium学习实践(一)简易运行Appium中的一致 Launch后,执行脚本 #coding:utf-8 import unittest impo ...
- Appium学习实践(三)测试用例脚本以及测试报告输出
之前Appium学习实践(二)Python简单脚本以及元素的属性设置中的脚本,会有一个问题,就是在每个测试用例完成之后都会执行tearDown,然后重新setUp,这样导致脚本的执行效率偏低,而且会有 ...
- Python appium搭建app自动化测试环境
appium做app自动化测试,环境搭建是比较麻烦的. 也是很多初学者在学习app自动化之时,花很多时间都难跨越的坎. 但没有成功的环境,就没有办法继续后续的使用. 在app自动化测试当中,我们主要是 ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- 60分钟Python快速学习(给发哥一个交代)
60分钟Python快速学习 之前和同事谈到Python,每次下班后跑步都是在听他说,例如Python属于“胶水语言啦”,属于“解释型语言啦!”,是“面向对象的语言啦!”,另外没有数据类型,逻辑全靠空 ...
- python爬虫学习(1) —— 从urllib说起
0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...
随机推荐
- [CSP-S模拟测试]:旅行(数学+线段树)
题目传送门(内部题12) 输入格式 第一行,一个整数$n$,代表树的点数.第二行,$n$个整数,第$i$个整数是$B_i$,描述排列$B$.接下来$n−1$行,每行两个整数$u,v$,描述一条树边$( ...
- 【Jmeter基础】 Linux上运行Jmeter
Jmeter 是一个强大的并发压测工具,常用于性能测试,压力测试,接口测试等领域.本文将介绍如下内容: 1. Jmeter 执行阶梯式压测 2. Jmeter 如何压测网站的js,css 等资源 3. ...
- Linux下MySQL 命令导入导出sql文件
导出数据库 直接使用命令: mysqldump -u root -p database >database.sql 然后回车输入密码就可以了: mysqldump -u 数据库链接用户名 -p ...
- C语言博客作业12
一.我学到的内容 二.我的收获 * https://www.cnblogs.com/asd123456/ * 我的收获:通过这一个学期的学习,我一共完成了11次作业,由最开始的第一次作业https:/ ...
- java反射-学习
使用Java反射机制可以在运行时期获取Java类的信息,可获取以下相关的内容: Class对象 类名 修饰符 包信息 父类 实现的接口 构造器 方法 变量 注解 简单的反射例子: 1.获取class对 ...
- 44.和为S的两个数字
题目描述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 思路分析: 数组是递增排序的,我们先将数组遍历一遍 ...
- 使用腾讯地图请求来源未被授权, 此次请求来源域名/ip:servicewechat.com
原文:微信小程序使用腾讯地图请求来源未被授权, 此次请求来源域名:servicewechat.com 版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明 ...
- wireshark 识别http的标准
使用route add 本机ip 255.255.255.255 网关ip metric 1 的方式 会使访问本机ip的连接发送到局域网内,这样wireshark就可以抓取到 但有一点需要注意 如果本 ...
- 用python实现批量获取Linux主机简要信息并保存到Excel中 unstable 1.1
#!/usr/bin/env python3 # -*- coding: utf-8 -*- #filename get_linux_info.py #获取Linux主机的信息 # titles=[' ...
- css字体的样式与分类用法总结
字体的样式 color 设置文本的颜色(前景色) ,它会应用到元素的所有边框,除非被 border-color 或另外某个边框颜色属性覆盖. <style> .box1 { color: ...