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完全只是控制浏览器,别的地方和它无关。


其他内容的话有待大家补充啦~暂时只想到这些。

最新文章

  1. Python 学习第十六天 html 前端内容总结
  2. Writing Clean Code 读后感
  3. Oracle导出表(即DMP文件)的两种方法
  4. 魔法禁书目录2:回家(codevs 3024)
  5. JavaScript基础概念
  6. android面试题(转)
  7. ECMAScript 6 入门学习笔记(持续更新)
  8. 多文件上传artDialog+plupload
  9. .net高级技术(class0515)
  10. CentOS5.5 下编译安装 LAMP
  11. 在windows下创建.gitignore文件
  12. Spring 源码解读 推荐流程
  13. ARMv8 Linux内核源代码分析:__flush_dcache_all()
  14. TreeMap 源码分析
  15. ratelimit.go
  16. python进程间通信
  17. PTA——32位前导零
  18. ObservableData-另一种姿势的观察者模式
  19. centos7升级Python版本后,yum不能正常使用
  20. C++中的ravalue学习笔记

热门文章

  1. MongoDB投影有$slice如何只显示该字段
  2. jdk源码->集合->ArrayList
  3. 我的java之路week2类的无参、带参方法
  4. [C#] 获取计算机内部信息 - ComputerInfoHelper
  5. 新人如何运行Faster RCNN的tensorflow代码
  6. iOS-隐藏Navigationbar【导航栏无缝圆滑的隐藏】
  7. 《Python网络编程》学习笔记--从例子中收获的计算机网络相关知识
  8. BZOJ 3697: 采药人的路径 [点分治] [我想上化学课]
  9. BZOJ 3514: Codechef MARCH14 GERALD07加强版 [LCT 主席树 kruskal]
  10. 2018/1/9 redis学习笔记(一)