zoukankan      html  css  js  c++  java
  • 嵌在客户端里的网页怎样自动化测试 ----- 一个三年前的问题的解答

    三年前的一次面试中我被问及,怎样自动化测聊天PC客户端软件里内嵌的网页。
     
    具体来说,他们的产品是某网站的聊天工具。聊天工具有PC端,PC端内部有嵌入一些网页。
    问我怎样做自动化测试。
     
    我曾经被这个问题难倒过。
    因为我那时只会用selenium,面试官先问我selenium会到啥程度,再问我遇到非通用的浏览器,selenium不支持的话怎么办。
    然后问我怎么用selenium实现某个自定义浏览器的driver。
     
    最后问我,怎样自动化测试他们这个内嵌有网页的桌面程序。
     
    现在回想了一下。
    突然有了答案。首先实现一个webdriver是没有必要的。selenium的作者使用webdriver这种奇怪的代码组织方式是为了兼容性。在只需要测单个自定义浏览器的情况下,根本不需要对这个浏览器去开发一个webdriver。如果要测的是浏览器本身,需要开发人员开放一些接口,而要测的如果是浏览器里显示的网页,根本不需要用这个浏览器来自动化测试。
     
    下面是我的答案,仅供参考:
     
    首先,把待测的软件划分为两个部分,一个是网页,一个是客户端。
    待测的用户场景分为3类。只和网页有关的、只和客户端有关的、客户端和网页交互的。
     
    当测试只和网页有关的场景时,可以用普通浏览器打开该网页,进行自动化测试。
    当测试只和客户端有关的场景时,需要客户端提供对应的接口,在测试脚本里调用对应的接口。接口的例子:比如点击某图标之类的。也就是转化成接口测试来编写和执行。
    当要测两者交互的场景时,明确我们到底要测网页,还是测客户端,还是一起测,
     
    只测网页时,采用mock的客户端+真实的网页----技术方案用一般的selenium之类的就行了。
    只测客户端时,采用mock的网页+真实的客户端-----技术方案同接口测试。
    两个一起测时,就用真实的网页+真实的客户端----技术方案就是接口测试和selenium混合。 
     
    综上,再把问题扩展和一般化,
    在需要单独测一些模块的时候引入合理的mock代替外部系统,
    在需要集成不同模块时,采用统一的编程语言和不同的库处理不同的逻辑(比如桌面端和web端的不同逻辑)。
    如此,不管是桌面端、web端、移动端,不管什么端的自动化测试都可以混合起来做。也都可以孤立开来使用mock单独测。
     
     
  • 相关阅读:
    urllib.parse.quote
    英译中批量翻译
    selenium批量翻译
    获取天气预报API5_统计最容易生病时间段
    【Python】统计个人新浪微博词频并给出相应的柱状图
    获取天气预报API
    python脚本实现-excel二级统计
    pubmed_cookie 自动获取
    Python 爬虫的工具列表 附Github代码下载链接
    python脚本-excel批量转换为csv文件
  • 原文地址:https://www.cnblogs.com/sdet/p/6420439.html
Copyright © 2011-2022 走看看