自动化测试selenium篇

禅道是一款什么工具?

禅道是一款项目管理工具,可以管理整个软件开发的生命周期。
软件开发的生命周期有哪些?(软件开发的流程)
需求–计划–设计–编码–测试–发布
  禅道可以进行测试管理:测试需求、测试用例、测试过程(状态),缺陷管理,报表统计
  禅道的使用者:产品经理,项目经理,开发人员,测试人员

什么是自动化测试?

在预设下的条件(自动化脚本)下运行系统,预设的条件包括正常和异常的情况,不需要手工去干涉机器可以执行。

在这里插入图片描述

越往下测试,效率越高,定位问题越容易;
主要精力放在单元测试的自动化;
单元测试的自动化;

(1)单元测试

写一个方法,如果main方法测试,就需要把整个项目启动起来

适用于项目比较庞大的系统:spring+Structs+hibernate

(2)接口测试

测试时间段:项目前期接口开发完成开始进行测试

用例维护量:比较少(HTTP)

适合的项目:接口变动较少的项目

自动化的价值:脚本的复用率越高,价值越大

(3)UI自动化

定义:对系统的界面元素进行操作,模拟用户的使用完成功能的正常和异常测试。

测试时间段:项目后期,项目完成前后端的开发和联调后

用例维护量:比较大

适合的项目:适合界面元素变动比较小的项目

UI自动化的好处

  1. 可以进行回归测试
  2. 节约资源
  3. 是一种可靠的测试方法,机器不会出错
  4. 可以完成很多繁琐的测试
  5. 能够完成手工测试无法完成的测试

自动化框架

RobotFranework ,关键字驱动,底层实现语言Python

Django,接口,底层实现语言Python

selenium,unittest框架,底层实现语言Python

为什么选择selenium?

在这里插入图片描述

webdriver的原理

  1. 运行脚本,把浏览器绑定到一个端口,这个端口就是浏览器端的remote server;
  2. 脚本通过commandexecutor,向浏览器发送HTTP请求,控制浏览器进行一系列的操作;
  3. 浏览器内核把指令解析成web service的命令,驱动浏览器进行一系列操作;

在这里插入图片描述

selenium第一个脚本


在这里插入图片描述

(1)定位元素的方式

定位元素的原则,不管用什么方式定位,这个方式(tag_name,name,id等)必须是全局唯一的

  1. id如果存在可以全局唯一定位一个元素
  2. name如果存在并且全局唯一定位一个元素
  3. class name如果存在并且全局唯一定位一个元素(类属性,样式css文件中定义的元素的样式,文字的大小,样式,颜色,图片的格式等)
  4. link text必须是链接,且链接内容全局唯一,才可以定位到(必须保证是一个可访问的URL)
  5. partial link text必须是链接,且链接内容全局唯一,才可以定位到(必须保证是一个可访问的URL)
  6. tag name必须全局唯一才可以定位到(元素标签)
  7. xpath任何一个元素都可以定位到
  8. css selector

(2)操作测试对象

  1. send_keys()像元素发送信息
  2. click()点击元素
  3. submit()提交表单
  4. clear()清除元素的类型
  5. text()获取元素的内容

(3)等待

  1. 固定等待  sleep()必须等待够括号的时间
    当页面中的元素没有加载出来的时候,无法定位到元素
  2. 隐式等待(智能等待)
    在这里插入图片描述

(4)信息打印

  1. 打印title
  2. 打印URL

(5)对浏览器的操作

  1. 浏览器的最大化
    在这里插入图片描述

  2. 设置浏览器的宽和高
    在这里插入图片描述

  3. 浏览器的前进和后退
    在这里插入图片描述

  4. 浏览器滚动条的控制
    在这里插入图片描述

(6)键盘事件

备注:所有的键盘操作必须建立在定位到元素的基础上,因为我们是基于元素进行操作的
在这里插入图片描述

常见的性能问题

  1. 内存泄漏(软件运行的时候没有回收内存,导致系统运行越来越慢);
  2. CPU使用率达到100%;
  3. 线程死锁,阻塞,造成系统运行越来越慢;
  4. 查询速度越来越慢;
  5. 受外部系统的影响越来越大;

为什么要进行性能测试

  1. 获取系统性能的指标,作为性能基准指标;一个新系统,需要知道系统的性能指标
  2. 验证系统的性能能否符合需求(应用系统能够满足系统的各项性能指标;
    应用系统是否可以处理预期的用户量,并且是否有盈余能力;
    应用系统是否可以处理预期的事务数量;
    在预期和非预期的情况下,系统能否可以稳定运行;
    在预期和非预期的情况下,用户使用软件时是否可以获得舒适的体验; )
  3. 看系统是否有内存泄漏等瓶颈问题
  4. 系统在正常工作下能处理的用户的数量
  5. 了解系统的性能,让运维部门更好规划系统的各种配置

确定性能测试的需求(性能指标,量化)

  1. 关键性能指标的分析
  2. 关键业务的分析
      系统出问题,一般不是系统所有的功能出问题,而是一些关键的业务或者功能出了问题导致的
    (1)在分析性能指标时,要选择用户频繁使用的功能
    (2)计算量比较大的业务

不同的维度衡量系统的性能

  1. 研发人员
      系统的架构是否合理,是否支持多线程并发这类操作
      数据库设计是否合理(合理放入索引和合理的关联表的关系)
      算法,核心算法是否高效
      设计和代码:是否存在不合理的线程同步方式和不合理的资源竞争

  2. 系统运维人员
      系统对资源的利用率,服务器(CPU,内存,磁盘,网络带宽等)的利用率和数据库的使用状况
      系统的容量:系统支持的最大用户数
      系统的稳定性:是否可以稳定运行,一天24小时
      系统的可扩展性,如果要进行扩容操作,系统可以支持

  3. 用户
      使用是否舒适,响应是否速度快,稳定性好

  4. 性能测试人员
      以上侧面都需要关注
      当系统性能无法达标时,关注引起系统性能的瓶颈

  5. 性能指标
      并发用户数:
        业务层面的并发数:同一时刻向后端服务器发送请求的用户数量
        后端服务器的并发数:同一时刻向后端服务器发送请求的数量
      响应时间:
        用户发送请求,到用户所期待的响应完全展示到前端所需要的时间
        前端响应时间:系统响应时间,服务器之间通信处理请求所需要的时间
        事务响应时间:系统中完成一个事务的平均响应时间
          事务:一系列密切相关的操作的集合
        每秒事务通过数(TPS):平均每秒处理的事务的数量
      点击率
        每秒点击数代表用户每秒向web服务器提交的HTTP请求的个数
        点击率越大,服务器的压力越大
      吞吐量
        单位时间系统处理的信息量
      思考时间
        模拟用户时间操作的停顿时间
      资源利用率
        系统在运行的时候资源的使用情况,包括CPU,内存,硬盘,网络等

  6. 模型
    当系统的性能不满足需求的时候,我们需要扩展系统的性能

  7. 性能测试的方法

  基准测试(没有性能需求,主要了解系统的性能指标)
    系统的新版本,或者新接手的系统,需要进行基准测试,获得系统的性能指标,作为以后改善系统的性能,或者保持系统性能的基准。
    进行基准测试不仅可以获取系统的基准新能指标,也可能会发现新系统的一些性能问题。

  并发测试
    同一时刻,向后端服务器发送请求,测试系统的表现,看系统是否会因为用户量大而出现资源竞争,死锁等问题;

  压力测试
    压力测试一般指后端的测试,不断对系统施加压力,看系统在长期处于临界饱和情况下,系统的稳定性以及系统性能指标的变化
    进行压力测试的时候会不断向系统增加负担,是的系统长期处于高负荷情况,看系统在极限情况下是否稳定,确定系统在极限情况下的CPU利用率,内存使用情况等指标

  配置测试
    系统配置在不同的配置上进行测试,找出能够使系统性能发挥最优的配置

  可靠性测试
    验证系统长时间运行的稳定性
    系统实际负载的70%左右,长时间运行,看系统是否运行稳定,指标是否稳定

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值