Web/app端自动化测试对比
Web/app端自动化测试
做了一段时间的Android自动化测试,对比个人之前做的web端自动化测试,有一些感想。(由于个人接触的时间也不是太久,很多东西理解也并不深刻,先写下菜鸟时期的感想。)
区别
1. 启动差别
app端:在执行用例的时候,1部安卓手机同一时刻打开一个apk包,可以理解,因为比如你在做王者荣耀的测试,那么你的apk肯定只有1个在主屏幕显示,其他apk在后台继续运行,但是你无法对他们做操作。
web端:web端就不太一样了,在web端,我们可以通过Python多线程(或多进程)同时开启几个浏览器,让selenium对多个浏览器进行操作,同样100个测试用例,如果均匀分布在3个浏览器进行,那么测试效率会有所提高,而且只需要一台电脑就可以测试多种浏览器。
2. 安装检查
app端:这点感觉很像c/s架构软件,因为app是需要安装了才能使用的,所以软件是否安装异常,也是需要检查的一个点。
web端:不需要安装,在浏览器中输入url就可以测试。
3. 页面元素操作
app端:只会显示在手机页面里加载出来的部分,比方说有的页面比较长,需要向下滑动才能看到更多信息,此时需要保证不可见的元素显示在手机页面才能对它进行操作。
web端:不太一样,如果控件不是下拉产生的异步加载,那么我们是可以对屏幕内不可见的元素做操作的。因为虽然页面上没有加载出来,但是html页面实际上已经有了。如果遇到需要下拉才能加载的页面,可以用js操作滚动条。
4. 元素定位
app端:基本操作和web端差不多,不过部分定位方式不支持,比如css_selector和link_text,使用的时候会提示方法还没实现,也多出了accessible_id这种新的定位方式,不过目前我还没有用到,以后再补充。
web端:基础的就name,id,class_name,css,xpath这几种了。
5. 启动
app端:需要制定desired_caps内容,因为里面包含了设备信息等。
web端:通过启动webdriver不同的浏览器类,获取driver,如webdriver.Chrome(),也可以模拟手机端加载wap页面做wap页面的测试。
6. 关于元素的属性
app端:查找到元素以后,查看元素对象,发现里边基本上只有元素的text属性,也没有相关的方法修改,这个区别还是很大的。不过appium有set_text和set_value的方法,目前还没有尝试,用的还是send_keys()。
web端:web端简直就是天堂了,比起修改,读取元素属性。比如我要获取input标签的name,我可以用get_attribute方法,也可以自行写js代码改变这些属性。
7. 使用js
app端:似乎是支持了,但是执行任何命令server端都会提示404的错误。
web端:支持非常好,因为本身js就是负责网页交互的,所以会很方便。
8. 关于滑动
app端:关于滑动是会用得很多的,比如页面很长,或者打开通知栏,这种需要在屏幕上滑动的,用到的还比较多。
web端:用到的比较少,之前基本上没有用到过。
9. 异常
app端:需要注意的是其他apk给你带来的影响,目前没有找到很好的方式去处理这些问题,因为其他apk给你做了弹窗,比如qq异地登陆,或者短信这种推送,会影响到目前的流程。办法肯定是有解决的,我个人理解,可以在出错之后比对一下是否在当前apk,如果不在的话则进入当前apk再做一次相关操作。
web端:很少被影响,可以边跑用例边聊qq,当然我只是举个例子,总之个人体会就是影响比较小,因为浏览器的driver完全只是控制浏览器,别的地方和它无关。
其他内容的话有待大家补充啦~暂时只想到这些。
最新文章
- Python 学习第十六天 html 前端内容总结
- Writing Clean Code 读后感
- Oracle导出表(即DMP文件)的两种方法
- 魔法禁书目录2:回家(codevs 3024)
- JavaScript基础概念
- android面试题(转)
- ECMAScript 6 入门学习笔记(持续更新)
- 多文件上传artDialog+plupload
- .net高级技术(class0515)
- CentOS5.5 下编译安装 LAMP
- 在windows下创建.gitignore文件
- Spring 源码解读 推荐流程
- ARMv8 Linux内核源代码分析:__flush_dcache_all()
- TreeMap 源码分析
- ratelimit.go
- python进程间通信
- PTA——32位前导零
- ObservableData-另一种姿势的观察者模式
- centos7升级Python版本后,yum不能正常使用
- C++中的ravalue学习笔记
热门文章
- MongoDB投影有$slice如何只显示该字段
- jdk源码->;集合->;ArrayList
- 我的java之路week2类的无参、带参方法
- [C#] 获取计算机内部信息 - ComputerInfoHelper
- 新人如何运行Faster RCNN的tensorflow代码
- iOS-隐藏Navigationbar【导航栏无缝圆滑的隐藏】
- 《Python网络编程》学习笔记--从例子中收获的计算机网络相关知识
- BZOJ 3697: 采药人的路径 [点分治] [我想上化学课]
- BZOJ 3514: Codechef MARCH14 GERALD07加强版 [LCT 主席树 kruskal]
- 2018/1/9 redis学习笔记(一)