zoukankan      html  css  js  c++  java
  • 多测师讲解 自动化测试理论(1)_高级讲师肖sir

    自动化测试理论
    什么是自动化测试?
    广义的:通过工具或程序替代或辅助人工测试的行为叫自动化测试
    狭义的:通过工具录制或编写脚本模拟手工测试的过程,通过回放或运行脚本执行测试用例,从而代替人工对系统的功能验证。

    分层自动化测试
    金字塔模型:UI层,接口层,单元测试层。大多数人认为自动化测试就是产品UI自动化测试,其实不是的。UI自动化测试只是3层中的最上一层,操作简单,投入比例少,价值最低,我们倡导根据产品开发阶段分别进行自动化测试
    UI层:关注模拟用户操作
    接口层:关注函数,方法提供的接口是否可靠
    调用函数或方法,进行传参,查看返回值是否正确。
    接口测试通过url进行传递,通过get方式向服务器发起请求,服务器接收请求,返回值是否正确
    单元测试层:主要关注代码实现逻辑

    投入比例和价值体现
    UI接口自动化:投入10%,全面UI自动化测试不现实,考虑人力,时间,资金投入,维护成本高(页面元素层级改变),价值低。但又并不可少,UI层直接呈现给用户。
    接口自动化:投入20%,价值居中。
    单元测试自动化:投入70%,价值最高,需求变动不大,如果有,也是直接增减用例。

    自动化测试的必要性
    目前测试行业的普遍现状
    手工测试的人员占测试行业80%,主要还是测试入门门槛低,虽然测试人员对专业知识有一定的广度,但缺乏深度,这也是开发自认清高的原因。目前手工测试人员已经有一定的饱和,初级,门槛低,技术含量低等各种标签,那么被淘汰的可能性也会相应的增加,要想不被淘汰,那么提升自己就很有必要了。自动化测试就是一个很好的选择。

    什么项目适合做自动化测试
    需求变动不频繁
    每一次需求变动,需要更新测试用例和测试脚本,脚本的维护本身就是一个花费时间的过程,比如修改,调试都会花很多时间。
    项目周期时间长
    需求的确定,测试框架的设计,用例的编写,调试需要相当的时间去完成
    自动化脚本重复使用
    自动化脚本根据项目本身,c/s,,b/s不同的架构,选择的自动化工具也可能不同。最重要的是脚本可以在以后的日子里重复使用,如果只是一次性的,那就失去了原本的价值。

    选择什么工具做自动化测试
    看你做什么项目,是桌面程序(c/s架构)web应用(b/s架构)
    C/s架构 测试工具:QTP autorunner
    B/s架构 测试工具:QTP Autorunner robotframework watir selenium
    目前流行robotframework和 selenium,selenium支持多语言。 如果选择了selenium ,那么就需要学习一门语言,selenium支持多语言开发,java,c#,rube,python,php.

    了解selenium
    Selenium1.0
    Selenium是一个开源的web功能测试工具。selenium核心是用javascript写的。通过javascript代码注入与浏览器进行交互。javascript全程管理测试流程,例如导入套件,执行用例,记录执行结果。Javascript与浏览器进行通信,浏览器执行,模拟用户真实的操作,包括浏览页面,点击链接,输入内容,提交表单等事务,从而达到自动化测试目的。

    selenium是一个工具,这个工具分1.0,2.0,3.0,三个版本。
    Selenium的组成
    SeleniumIDE
    一个浏览器插件,实现浏览器录制回放功能。
    Selenium Grid
    并行执行用例,通过一台主机控制用例在不同的环境,浏览器中运行
    seleniumRC
    核心,编写测试脚本,通过seleniumRC服务器作为代理服务器访问应用达到测试目的。
    SeleniumRC组成
    Seleniumclient,seleniumserver
    seleniumclient编写测试脚本,seleniumclient库控制seleniumserver库。
    Seleniumserver分launcher,http proxy,core
    launcher:发射器,用于启动浏览器,把core加载到浏览器页面中,并把服务器代理设置selenium server的http proxy.
    http proxy: seleniumserver 代理
    Core:js函数集合

    Selenium2
    Selenium2=selenium1+webdriver
    Selenium2核心是webdriver, webdriver取代了seleniumRC.
    Webdriver和seleniumRC的区别

    SeleniumRC核心是selenium Core,把core,也就是js函数,加载到浏览器页面中,使用js执行selenese命令,webdriver是使用原生api进行封装成selenium webdriver api直接控制浏览器。两者最大区别就是一个采用js代码注入浏览器页面技术,一个是用原生api进行封装成selenium webdriver api 控制浏览器。

    学习selenium需要学习元素定位方法
    元素定位提供了id,name,classname,tagname,link text,partial link text,xpath,css定位方法。还有javascript,jquery,xpath,css使用较难,但功能强大。
    定位元素的目的是操作元素。例如输入框,下拉框,按钮点击,文件上传,对话框,单选多选按钮。
    当用例写的多了,会发现很多关键字都是常用的,有些步骤都是重复的,就会学习案例分层。
    当用例写的多了,维护脚本就成了问题,那么就会把所有变量提取出来,统一放在一个变量文件中。这样方便脚本维护
    用例是流水线的,自己执行的用例如何判断执行成功了,那么就会学习脚本中一些验证和断言。

  • 相关阅读:
    AUDIT审计的一些使用
    HOW TO PERFORM BLOCK MEDIA RECOVERY (BMR) WHEN BACKUPS ARE NOT TAKEN BY RMAN. (Doc ID 342972.1)
    使用BBED理解和修改Oracle数据块
    Using Class of Secure Transport (COST) to Restrict Instance Registration in Oracle RAC [ID 1340831.1]
    调试利器GDB概念
    第4章 思科IOS
    第3章 ip地址和子网划分
    第2章 TCPIP
    2020年阅读过的黑客资源推荐篇
    第1章 计算机网络
  • 原文地址:https://www.cnblogs.com/xiaolehua/p/13745923.html
Copyright © 2011-2022 走看看