zoukankan      html  css  js  c++  java
  • Web/App端自动化测试对比

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

     

  • 相关阅读:
    bzoj1379 [Baltic2001]Postman
    bzoj1116 [POI2008]CLO
    bzoj1734 [Usaco2005 feb]Aggressive cows 愤怒的牛
    tyvj1086 Elevator
    2014.7.8模拟赛【聪明的打字员】
    2014.7.8模拟赛【笨笨当粉刷匠】|bzoj1296 [SCOI]粉刷匠
    2014.7.8模拟赛【笨笨的电话网络】
    2014.7.8模拟赛【词编码】
    bzoj1854 [Scoi2010]游戏
    2014.7.7 模拟赛【小K的农场】
  • 原文地址:https://www.cnblogs.com/guo2733/p/10830392.html
Copyright © 2011-2022 走看看