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集成或者其他

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

  1. POE交换机供电原理及工作过程

    POE指的是在现有的以太网Cat.5布线基础架构不作任何改动的情况下,在为一些基于IP的终端(如IP电话机.无线局域网接入点AP.网络摄像机等)传输数据信号的同时,还能为此类设备提供直流电的技术.就是 ...

  2. ☀️手把手教你Python+matplotlib模拟锁相放大器的原理以及工作过程☀️《❤️记得收藏❤️》

    ☀️手把手教你Python+matplotlib模拟锁相放大器的原理以及工作过程☀️<❤️记得收藏❤️> 目录

  3. HTTP协议工作原理、工作过程

    1. HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议.它可以使浏览器更加高效,使网络传输减少. ...

  4. 人工智能AI常见的经典K-means聚类算法原理和工作过程

    K-means聚类算法亦称K聚类均值算法,K-means算法是硬聚类算法中的一种.聚类算法是一类无监督机器学习.K-means算法是计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法.K-me ...

  5. Hyperledger Fabric 排序服务核心原理和工作过程

    Hyperledger 源码分析之 Fabric 排序服务在超级账本 Fabric 网络中起到十分核心的作用.所有交易在发送给 Committer 进行验证接受之前,需要先经过排序服务进行全局排序. ...

  6. 在wps里面怎么设置触发器_wpsppt触发器怎么设置 jk触发器的工作原理及工作过程...

    延迟线使第二个触发器的触发稍晚于***个触发器,而使***个触发器的输出能够在第二个触发器接收到时钟信号之前稳定到有效的逻辑电平.延迟时间的选择要合适,从而使第二个触发器D输入处出现不确定电平的时间相 ...

  7. ajax简介跟优点讲解,简要总结ajax工作原理及优缺点

    虽然在实际的项目中使用多种ajax请求,但就其工作原理,优缺点尚未深入总结, 参考:http://www.cnblogs.com/SanMaoSpace/archive/2013/06/15/3137 ...

  8. selenium常用定位方式

    Selenium 是一个Web应用程序的自动化测试工具.使用javaScript内核语言编写,几乎支持所有能运行javaScript的浏览器(包括IE(7, 8, 9, 10, 11),Mozilla ...

  9. V---双相机定位贴合的原理和实现过程

    主要讲解上下双相机定位贴合的原理和实现过程,包括各种标定.组合使用及具体的halcon源码实现, 适用于的X.Y.Z三轴加一旋转轴系统,如模组组成的多轴系统.Scara四轴机器.六轴机器人(在运行过程 ...

最新文章

  1. 《评人工智能如何走向新阶段》后记(再续3)
  2. html小说页面上一页下一页,WordPress单页面上一页下一页实现方法(2)
  3. 371. 两整数之和
  4. 杀软厂商开源--从此走向平台化?
  5. 故障解决:没有未桥接的主机网络适配器
  6. 《好未来编程题》倒置字符串
  7. DotNetCore跨平台~Dockerfile的解释
  8. MFC多线程的创建,包括工作线程和用户界面线程
  9. mysql 字节流_字节流至缓冲流
  10. Tomcat安装及配置教程
  11. 2021-10-26 模电共射放大电路部分
  12. 企业研发人员配备比例_……企业职工人数、学历结构以及研发人员占企业职工比例说明...
  13. 东芝自助结账设备市场份额增长近50%
  14. zjb_integrated 的BLOG(学习DaVinci的好文章)
  15. MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中
  16. 2021 年最佳开源软件榜单,Python 高性能框架 FastAPI 上榜了!
  17. ACM--博弈论入门--几种博弈游戏类型+题集
  18. iOS YYModel使用方法
  19. 章立民老师北京中关村图书大厦讲座
  20. 云痕大数据 家长登录_1 云痕家长操作手册

热门文章

  1. 【锁屏】 Ubuntu20.04 锁屏快捷键无反应的解决方法
  2. Maxima 矩阵及矢量运算 1
  3. 【Cheatsheet】Java的常用代码(以及eclipse技巧)
  4. QCA988x Windows7驱动安装方法
  5. 一个画板十年工程师的PCB设计经验分享
  6. pl/sql基础知识—定义并使用变量
  7. python画板——画樱花
  8. 飞腾cpu服务器浪潮信息,浪潮发布基于国产飞腾CPU的服务器
  9. 问题G:学号识别 使用简单数组输出
  10. [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接