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


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

Web/app端自动化测试对比的更多相关文章

  1. Fiddler抓包(基本使用方法、web+app端抓包、篡改数据、模拟低速)

    1.HTTP代理原理图 http服务器代理:既是web服务器,又是web客户端 接口vs端口: 接口:包含地址和端口 端口:类似于USB接口 地址:127.0.0.1,端口默认:8888        ...

  2. 如何设计和实现一个web app

    web app简介 web app其实不算是什么新鲜的东西,相比于传统的web和传统的app,web app这种web和app相结合的产物有的优点如下: 1. 开发上web app更有便捷性,ios开 ...

  3. 【AMAD】splinter -- 用于测试web app的python框架

    简介 动机 作用 用法 热度分析 个人评分 简介 Splinter1是一个开源工具,使用Python编写,用于测试web apps.它可以用来对浏览器实现自动化操作,比如访问URLs,和按钮等交互. ...

  4. 移动端混合型App(hybrid app)自动化测试选型与实践

    背景 公司产品的业务已经发展到了移动端,开发选型已经结束,决定使用phonegap做移动端的web应用开发平台.考虑到业务的复杂与多样,移动端的测试同样需要自动化.在网上看了很多,最终锁定了3个移动端 ...

  5. web端,app端,小程序端测试差异详解

    前置解释:1.单纯从功能测试的层面上来讲的话,APP 测试.web 测试和H5测试在流程和功能测试上是没有区别的2.Web项目或pc项目都是在电脑上进行测试的.常见的PC项目架构有BS架构和CS架构的 ...

  6. Native App, Hybrid App, Web App对比

    Native App,Hybrid App和Web App简介 目前基本所有的移动互联网app可以分为三类:Native App,Hybrid App和Web App. Native App是基于智能 ...

  7. 移动端web app开发学习笔记

    移动web和pc端web以及web app 移动web开发跟web前端开发差别很小,使用的技术都是html+css+js.手机网页可以理解成pc网页的缩小版加一些触摸特性.在浏览器中进行的网页开发,最 ...

  8. python 全栈开发,Day127(app端内容播放,web端的玩具,app通过websocket远程遥控玩具播放内容,玩具管理页面)

    昨日内容回顾 1. 小爬爬 内容采集 XMLY 的 儿童频道 requests 2. 登陆 注册 自动登陆 退出 mui.post("请求地址",{数据},function(){} ...

  9. APP端测试与web端测试的区别

    想要知道APP端测试与web端测试的区别 ,那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/s的,必须要有客户端.那么在系统测试测试的时候就 ...

随机推荐

  1. MySQL中时间函数NOW()和SYSDATE()的区别

    mysql中日期函数还是比较常用的.主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别. NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间. ...

  2. yaml 格式

    来源:http://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt 1.YAML是一种通用的数据串行格式 2.基本语法规则: 大小写敏感 使用缩进表示层级 ...

  3. Halcon一日一练:创建三通道图像

    首先理解一个什么是三通道图像: 三通道图像就是彩色图像,我们之前黑白相机或黑白电视机都是彩用的灰阶图像,即单通道图像,一般是2的8次方个灰阶,即256个灰阶.彩色图像采用RGB,红绿蓝三个通道来合成彩 ...

  4. PostgreSQL版本快速升级

    PostgreSQL版本快速升级 写在前面 PostgreSQL9.5版本支持数据分片的功能,为以后做分布式考虑,准备将生产环境的9.1版本升级至9.5.中间需要做数据迁移. 在迁移操作中,为保证数据 ...

  5. poj 1423 打表/斯特林公式

    对于n位数的计算,我们可以采用(int)log10(n) + 1的方法得到n的位数 第一种方法: 对于n!位数的计算,log10(n!) = log10(1) + log10(2) + ... + l ...

  6. Django的CBV和FBV

    一.FBV FBV(function base views) 就是在视图里使用函数处理请求,也是我们最开始接触和使用的方式,普通项目中最常见的方式. urls.py 1 2 3 4 urlpatter ...

  7. Redis .Net 基本类型使用之南

    前言 最近需要使用redis,看了一些文档,也在博客园里面看了很多文章,这里就记录下Redis常用类型的操作. String string是redis基本类型,一般通过Get,Set 命令进行操作,这 ...

  8. 编译安装 python 2.7

    下载python2.7 Python-2.7.6.tgz 下载链接:http://pan.baidu.com/s/1c0AJDDI 配置./configure 编译make 安装 make insta ...

  9. 利用rsync+inotify实现数据实时同步脚本文件

    将代码放在Server端,实现其它web服务器同步.首先创建rsync.shell,rsync.shell代码如下: #!/bin/bash host1=133.96.7.100 host2=133. ...

  10. ABP官方文档翻译 8.2 SignalR集成

    SignalR集成 介绍 安装 服务器端 客户端 建立连接 內建特征 通知 在线客户端 PascalCase与CamelCase对比 你的SignalR代码 介绍 ABP中的Abp.Web.Signa ...