Selenium原理初步--Android自动化测试学习历程
章节:自动化基础篇——Selenium原理初步(第五讲)
注:其实所有的东西都是应该先去用,但是工具基本都一样,底层都是用的最基础的内容实现的,测试应该做的是:
(1)熟练使用工具,了解各个工具的利弊,达到工具优选、因时因地制宜的目的
(2)读源码,理解原理,能够对开源的源码进行二次再创造,改编成适合自身产品的工具;或者自己直接编写适合测试的工具
(3)能够对测试过程中发生的异常进行分析和定位,对测试结果进行详细和系统的综合评定(需要能够分析定位问题,必须对自身产品了解,但更需要的是对底层代码和操作系统的深入分析和理解,这才是关键)
现在的公司把测试开发和测试分的太开,测试开发就只是开发工具,供所谓的测试使用:两者应该是结合在一起的,测试必须首先深入理解功能,才能根据功能需求和测试需求自我产出更好的测试工具
主要讲解内容及笔记:
一、学习Selenium的原因
项目需要
上图的逻辑理解:
手机app客户端向数据库发起请求,数据获取到内容后,返回到手机app端,同时网页端也要同步更新,获取到数据库端的指令;反之亦然。
网页展示及app客户端需要即时同步沟通,网页展示及测试相关就需要用到Selenium。
Native Driver:是google做的一个Selenium的简化版,即android里面的Selenium的简化版,用于测试手机的本地APP,提供webdriver一样风格的API。这个必须在编译的时候生成相对的jar包,如果这个Native Driver的jar包的话,就无法使用Native Driver做自动化测试,局限性比较大,但原理跟Selenium是相似的
下面介绍基本原理:
1、安装apk到模拟器后,会和Framework框架进行通信,Server会起一个4444的端口,通过这个端口跟FrameWork进行通信,通过这个端口就可以获取到所有的控件,再根据三中不同的方式(Path、Id以及ClassName)找到控件。
2、客户端Client的程序需要部署在自动化脚本中,然后你可以自己写一个Test的测试程序,这个程序作用于AndroidDriver的Client端,给它发指令,然后客户端就会通过http+jscon的方式访问模拟器上的Server,进行相应的模拟操作。
二、Selenium原理初探
1、Selenium的简介:Web端的自动化测试工具,兼容性很好,基于Chrome、火狐、IE等的浏览器均可良好使用,
2、下载:在官网页面上能够看到以下四个内容
Selenium IDE:一个火狐插件(a FireFox Plugin)
Selenium Server(曾用名:Selenium RC Server)
The Internet Explorer Driver Server
Selenium Client & WebDriver Language Bindings(跟特定语言相关的,建议Java、Python)
推荐使用的是Selenium RC
看看源码:
1、Server——DriverServlet(核心)
继承HttpServlet,能够拿到http的这个request and response,就可以在service函数中设置response的报头,然后就能够进行传输
(巩固一下:adb的端口是5037,Selenium的Server的端口是4444)
注:android里面的dumpsys meminfo,内存分析包含四个:total、Rss(物理内存)、Stack内存、Virtual内存
2、Flick——滑动——核心是基于控件
与Robotium的很像,获取Web的所有Element-->得到坐标点-->调用flick方法进行滑动,参数为elementlocation,xoffset,yoffset,speed
另:SetJsonParameter,即设置Jason的参数,
网络传数据的格式:
(1)Json,格式:[{'xxx':xxx, 'xxx':xxx},{...}],其实跟Python的字典比较像,反正就是定义了一个格式,方便你去传输和解析,解析的话就是通过一种特殊的格式让你找到一个字段,然后再去获取到这个字段的value
(2)SAX:动态解析
(3)xml,格式:都是成对出现的,<xxx></xxx>
(4)ini?应该一般用ini的比较少吧,最近在写的一个项目用的ini,其他的没做调研,反正ini是没法换行
3、LongPressElement(跟Robotium的ClickLongOnScreen方法类似):
基本原理都一样,都是获取Element,得到坐标点,调用LongPress方法
如何找Element:(基本原理都类似:传递参数,然后找到跟这个参数匹配的,只不过可以通过以下三种方式来获取到而已)
1、ByXPath
2、ByID
3、ByClassName
4、ByCssSelector
5、ByLinkText
6、ByName
7、ByPartialLinkText
8、ByTagName
核心:坐标与控件交互——找控件,定位坐标,通过对坐标进行操作
三、Selenium演示
写脚本:
1、初始化
2、testcase
3、after的teardown里面selenium.stop()
网易云课堂:http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=878101&courseId=712011
金阳光测试 |
新浪微博:金阳光woody |
网站地址 |
1、百度搜:金阳光测试 2、官网:www.goldensunshine.cc |
微信公众号 |
Selenium原理初步--Android自动化测试学习历程的更多相关文章
- Appium原理初步--Android自动化测试学习历程
章节:自动化基础篇——Appium原理初步(第七讲) 本期关键词: Appium.跨语言跨平台.Bootstrap 主要讲解内容及笔记: 一.what is appium 一种封装了uiautomat ...
- AndroidDriver原理初步--Android自动化测试学习历程
章节:自动化基础篇——AndroidDriver原理初步(第六讲) 主要讲解内容及笔记: 一.AndroidDriver核心原理 对上图的解析: PC端的端口通过adb,将android版的Remot ...
- Robotium原理初步--Android自动化测试学习历程
章节:自动化基础篇——Robotium原理初步(第四讲) 主要讲解内容与笔记: 一.基于控件 1.spinner——下拉菜单 2.TabHost——左右滑动选择菜单,类似电话本 3.Gallery—— ...
- MonkeyRunner原理初步--Android自动化测试学习历程
章节:自动化基础篇——MonkeyRunner原理初步 主要讲解内容及笔记: 一.理论知识和脚本演示 最佳方式是上官网文档去查看monkeyrunner的介绍,官网上不去,就找了一个本地的androi ...
- Monkey原理初步和改良优化--Android自动化测试学习历程
章节:自动化基础篇——Monkey原理初步和改良优化(第三讲) 主要讲解内容与笔记: 一.理论知识: 直接看文档,来了解monkey的概念.基本原理,以及如何使用. First,what is And ...
- 百度Cafe原理--Android自动化测试学习历程
主要讲解内容及笔记: 一.Cafe原理 Cafe是一款自动化测试框架,解决问题:跨进程测试.快速深度测试 官网:http://baiduqa.github.io/Cafe/ Cafe provides ...
- 截图原理(二)——android自动化测试学习历程
接上一篇(截图原理) 视频地址:http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=87 ...
- 截图原理(一)——Android自动化测试学习历程
把两节的内容汇总起来,第一节讲的是如何在apk中直接进行截屏,用到了Robotium的Solo类的takeScreenShot方法,有一个小的demo,以及从方法一直往里钻,知道它具体是怎么进行截屏的 ...
- 自动化预备知识上&&下--Android自动化测试学习历程
章节:自动化基础篇——自动化预备知识上&&下 主要讲解内容及笔记: 一.需要具备的能力: 测试一年,编程一年,熟悉并掌握业界自动化测试工具(monkey--压力测试.monkeyrun ...
随机推荐
- 深入浅出 JIT 编译器
转载 https://www.ibm.com/developerworks/cn/java/j-lo-just-in-time/ JIT 编译器在运行程序时有两种编译模式可以选择,并且其会在运行时决定 ...
- 亚马逊云EC2做PPTP SERVER的笔记
1.在亚马逊控制台上启动实例 2. 3. 4. 5. 6.配置安全组,把你的IP开放所有流量. 7. 用你自己的亚马逊KEY或者生成一个新的KEY来登录EC2 8.开始搭建VPN-PPTP——how ...
- [UE4]为什么会有类型检查
类型检查 定义:对象的行为是否符合类型的行为 作用:帮助开发者找出潜在的错误. 类型转换 隐式类型转换:整数可以和浮点数运算 显式类型转换/强制类型转换
- 爬虫框架之Scrapy——爬取某招聘信息网站
案例1:爬取内容存储为一个文件 1.建立项目 C:\pythonStudy\ScrapyProject>scrapy startproject tenCent New Scrapy projec ...
- 在ubuntu中如何向U盘复制粘贴文件 Read-only file system
1. 重新挂载被操作分区的读写权限,如U盘 $ sudo mount -o remount,rw /media/lenmom/00093FA700017B96 #U盘挂载目录,如果是系统中的其他盘, ...
- HTML5须知的特征和技术
1.新的Doctype XHTML文档类型 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...
- 网络命令ping/netstat/ipconfig/arp/tracert/nbstat
1.1 Ping命令的使用 ping检测网络故障步骤: ping 127.0.0.1 ping环绕指针检测是否在计算上anzhaung了TCP/IP协议及配置是否正确 ping本机IP这个命令被被送到 ...
- 扯皮的cplex-感觉时间不对
import ilog.cplex.CpxMult; import ilog.cplex.CpxNumExpr; import ilog.cplex.IloCplex; import ilog.con ...
- leetcode35
public class Solution { public int SearchInsert(int[] nums, int target) { ; i < nums.Length; i++) ...
- 使用REGINI修改注册表权限
regini regset.ini 就行啦 regset.ini 是你要修改的数据 1.注册表修改 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr ...