《Selenium Python自动化测试》摘记

最近再学python自动化,觉得书还是要读的,重要的内容还是要记得,不然读过一遍很快又会忘记,尤其是理论性的知识。

1. 软件测试分类


单元测试:对程序中的单个子程序或具有独立功能的代码段进行测试

集成测试:在单元测试的基础上,通过单元模块组装成系统或子系统,再进行测试,重点是检查模块间的接口是否正确

系统测试:针对整个产品系统进行的测试,验证系统是否满足了需求规格的定义,以及软件系统的正确性和性能等是否满足要求

验收测试:部署软件之前的最后一个测试操作,目的是确保软件准备就绪,满足用户的所有需求

白盒测试与黑盒测试,是根据软件测试工作中对软件代码的可见程度进行的划分。灰盒测试介于两者之间

黑盒测试着眼于程序外部结构,不考虑内部逻辑,主要针对软件界面和软件功能进行测试。

白盒测试:按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

黑盒测试方法:

  • 等价类划分法(有效+无效)
  • 边界值(刚好等于、稍小于、稍大于)
  • 错误推断法(修改密码发生在多处)
  • 因果图法(什么样的条件下有什么样的结果)
  • 正交试验设计法(从大量数据中选择适量的、有代表性的测试数据)
  • 等等

从对软件的不同测试点可以划分为功能测试和性能测试。

功能测试可以细分为:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等

性能测试时通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试

软件的性能主要有时间性能和空间性能。

时间性能:主要指软件的一个具体的响应时间。比如登录时间、交易时间等。

空间性能:主要指软件运行时所消耗的系统资源,比如硬件资源,cpu,内存,网络带宽消耗等

从对软件测试工作的自动化程度可以划分为手工测试与自动化测试。

手工测试通常是指我们在系统测试阶段所进行的功能测试

自动化测试是把人为驱动的测试转化为机器执行的一种过程

冒烟测试、回归测试、随机测试出现在软件功能测试周期中,既不算具体明确的测试阶段也不是具体的测试方法。

冒烟测试:是指在对一个新版本进行系统大规模测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。引入到软件测试中,就是指测试小组在正规测试一个新版本之前,先投入较少的时间和人力验证一个软件的基本功能,如果主要功能都没有实现,则打回开发组重新开发。这样做的好处是可以节省大量的时间成本和人力成本。

回归测试:修改了旧代码后,重新进行测试以确定修改后没有引入新的错误或导致其它代码产生错误。是一个循环的过程

随机测试:是指测试中的所有输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。一般放在测试最后执行,专业叫做探索性测试

探索性测试:是一种测试思维技术,它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维技术。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。

安全测试:在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以及验证产品符合安全需求定义和产品质量标准的过程。

2. 自动化测试

在自动化测试中倡导产品开发的不同阶段都需要自动化测试


单元测试:java的Junit、testNG,C#的NUnit,Python的unittest、pytest等,几乎所有主流的语言,都会有其对应的单元测试框架

集成、接口测试:单元测试关注代码的实现逻辑,如一个if分支或一个for循环;集成、接口测试关注的是一个函数、类方法所提供的的接口是否可靠。

UI层的自动化测试:主流的有QTP,Robot Framework、watir、Selenium等

越往上层,其维护成本越高。比重一般为70-20-10

3. 自动化测试条件

  • 任务测试明确,不会频繁变动
  • 每日构建后的测试验证(没懂)
  • 比较频繁的回归测试
  • 软件系统界面稳定,变动少
  • 需要在多平台上运行的相同测试案例,组合遍历型的测试,大量的重复任务
  • 软件维护周期长
  • 项目进度压力不太大
  • 被测软件系统开发比较规范,能够保证系统的可测试性
  • 具备大量的自动测试平台
  • 测试人员具备较强的编程能力

一般满足三条以上即可开展自动化测试

4. 自动化测试工具

广义上讲所有借助工具来进行软件测试的都可以成为自动化测试,狭义上主要指基于UI层的自动化测试

QTP:企业级的自动测试工具,提供强大易用的录制回放功能。支持B/S、C/S两种架构的软件测试,是目前主流的自动化测试工具。

注:C/S(Client/Server)客户机/服务器,多为windows平台,B/S(Browser/Server)浏览器/服务器,多为web端

Robot Framework:基于Python编写的功能自动化测试框架,具有良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或接口,可以进行分布式测试执行

watir:基于web模式的自动化功能测试工具,Ruby语言

Selenium:基于web应用程序测试的工具,支持多平台、多浏览、多语言去实现自动化测试。

5. Selenium介绍

毕竟是讲selenium的,所以从这开始进入正文

特点:

  • 开源,免费
  • 多浏览器支持:Firefox、Chrome、IE、Opera
  • 多平台支持:Linux、windows、MAC
  • 多语言支持:java、Python、Ruby、PHP、C#、JavaScript
  • 对web页面有良好的支持
  • 简单(API简单),灵活(用开发语言驱动)
  • 支持分布式测试用例执行

Selenium 2.0 = Selenium 1.0 + WebDriver



网络知识补充:

网络协议:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。前三层是链接,后面是端对端

  • 物理层:通信在通道上传输的 是比特流
  • 数据链路层:帧和数据帧
  • 网络层:如何选择路由,防止分组导致的阻塞,网络击飞(分组)
  • 传输层:报文
TCP/IP协议:应用层、传输层、网络层、物理链路层。

DNS:把主机名映射为网络地址


猜你喜欢

转载自blog.csdn.net/u013783095/article/details/79852830