selenium简介,原理,优点,工作过程,定位方式

1.selenium简介
selenium是一个用于web应用程序自动化测试工具,可以直接运行在浏览器,就行用户真正的在浏览器操作一样,支持的浏览器包括:IE,Firefox,Chrome,Safari
主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。

2.selenium原理(3个)
1.测试脚本:python,java编写脚本程序
2.浏览器驱动:不同的驱动对应不同的版本
3.浏览器:IE,Firefox,Chrome,Safari

3.selenium工作过程
1.对于每一条Selenium脚本,一个http请求会被创建并且发送给浏览器的驱动
2.浏览器驱动中包含了一个HTTP Server,用来接收这些http请求
3.HTTP Server接收到请求后根据请求来具体操控对应的浏览器
4.浏览器执行具体的测试步骤
5.浏览器将步骤执行结果返回给HTTP Server
6.HTTP Server又将结果返回给Selenium的脚本,如果是错误的http代码我们就会在控制台看到对应的报错信息

4.selenium自动化测试流程
1.分析需求
2.制定测试计划
3.设计用例
4.搭建测试框架(公用对象,公用环境,公用方法,工公用测试数据)
5.编写脚本
6.分析测试结果
7.维护测试脚本

5.UI自动化本质
定位元素–操作元素–模拟页面操作–断言–测试报告

6.UI自动化的前提
1.需求不能频繁动
2.UI稳定
3.项目周期长
4.回归测试频繁

7.适用场景
冒烟测试,回归测试

8.UI自动化的原则
1.一个case完成一个功能测试(可以从功能用例摘除可以自动化的禁行标识)
2.一个脚本是一个完整的业务场景
3.每个脚本可以独立运行,没有依赖关系
4.设计合适的检查点
5.设计良好的框架

9.UI自动化的覆盖率
是根据项目来说,并不是占比越高越好,会受到项目周期,迭代次数等影响

10.selenium优点
1.开源,免费
2.支持多种浏览器IE,Firefox,Chrome,Safari
3.支持多平台 Windows,Linux,Mac
4.支持多语言 python,java,c
5.对web支持良好
6.简单,灵活
7.支持分布式测试用例执行

11.selenium定位方式
from selenium import webdriver
driver = driver.chrome()

driver.find_element_by_id()
driver.find_element_by_name()
driver.find_element_by_class_name()
driver.find_element_by_tag_name()
driver.find_element_by_link_text()
driver.find_element_by_xpth()
driver.find_element_by_css_selector()

12.框架设计:

我们来思考下框架组成部分:

1)需要配置文件管理

2)业务逻辑代码和测试脚本分离

3)报告和日志文件输出

4)自定义的库的封装

5)管理、执行脚本方式

6)第三方插件引入

7)持续集成

解释:

  我们需要一个配置文件去控制一些,环境信息,开关,配置文件可以是txt/xml/yaml/properties/ini,一般.properties使用较多在JAVA里,本文是Python系列,我可能会选择ini文件。

   业务逻辑代码和测试脚本分离,不像我们刚开始学习Selenium那样,代码和脚本在一个类文件里演示。我们根本没有用到代码重构,复用。代码和用例文件分离后,更加清晰,去多人开发脚本,方便调试。

   报告和日志文件输出,你执行了多少case,case结果如何,这都需要报告来展示,一般采用第三方插件来实现这个功能,好多报告格式是html,简单,明了的风格。日志输出也很重要,如果发生报错,脚本执行失败,通过日志快速定位发生问题位置。

  用户自定义库,这个很好理解,我们很多功能需要重复调用,这样我们就写成一个公用方法,放到工具包下,每次方便调用,例如浏览器引擎类和basepage.py的封装。

  管理和执行脚本的方式,例如Python中单元测试框架unittest使用率非常高。

  第三方插件,有时候,我们一些功能,需要借助第三方插件,能够更好实现,例如AutoIT,来实现文件上传和下载。还有利用第三方报告插件生成基于html格式的测试报告。

  持续集成,git,svn,ant,maven,jenkins,我们会把这整合到jenkins,达到持续集成,一键执行测试脚本。

结论:
配置元件:配置文件与全局环境变量
框架的主要代码:日志类,封装,调用,配置文件读取
产品业务:核心思想,页面对象,业务逻辑分层
测试脚本集合:管理和创建业务测试单元
日志和报告:报告输出
测试集成和其他:Jenkins集成或者其他

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值