【公司UI自动化学习】

 公司课程链接:https://l.jd.com/student/project/project.du?project_id=697509403

公司的课程,是给一个学习方向。

一、 PC自动化

1)什么项目适合

2)PC自动化介入时间点

3)自动化率:

频繁改动的,适合比较稳定的主流程去做自动化,随着逐步稳定,逐渐提升自动化率(自动化场景占比率)

二、自动化框架

 做自动化框架的话,只用selenium是不够的还得搭配其他框架进行结合

cypress:新出的,轻量级,上手快,只支持javascript 

2、selenium原理

selenium有2个版本:

1、selenium1:

通过代理服务器,欺骗远程的WebServer,通过脚本发出的请求,让WebServer以为是浏览器自己发出的请求,然后返回正常的数据。

框架是比较沉重的。因为他需要一个代理服务器。

原理概述:1、最下面的脚本(代码)与remote control server 这样的一个代理服务器进行交互(连接)。2、然后,通过laucher启动一个浏览器,并注入JS代码。3、将代码传给客户端的selenium core里面。selinium core起到一个翻译的作用:解析并执行用户录制的一些操作并执行脚本里定义好的一些指令。5、然后与代理服务器进行一个通讯。6、代理服务器会把命令和请求发送给webserver。然后webserver会做出相应的操作,比如说点击打开URL等

2、selenium2

remote server 其实就是浏览器,每一个浏览器都是 remote server

client端,其实就是代码后端

原理:Selenium 2,也称为Selenium WebDriver,是一种用于自动化web应用程序测试的工具。它的原理基于直接与浏览器的原生接口进行交互,从而控制浏览器的行为。以下是Selenium 2的工作原理的详细说明:1. **WebDriver协议**:Selenium 2使用WebDriver协议与浏览器进行通信。这个协议定义了客户端(测试脚本)与服务器(浏览器驱动)之间的消息格式。2. **浏览器驱动**:对于每一种支持的浏览器,Selenium 2都有一个对应的驱动程序(如ChromeDriver、GeckoDriver等)。这些驱动程序实际上是实现了WebDriver协议的服务器端,它们能够启动浏览器,并与浏览器建立通信。3. **原生浏览器接口**:与Selenium 1(Selenium RC)不同,Selenium 2不依赖于JavaScript来控制浏览器。相反,它直接调用浏览器提供的原生接口。这意味着Selenium 2的命令能够更快速、更可靠地被浏览器执行。4. **自动化操作**:通过WebDriver,测试脚本可以模拟用户的操作,如点击链接、输入文本、选择下拉菜单等。这些操作通过HTTP请求发送到浏览器驱动,然后由浏览器驱动转换为浏览器可以理解的动作。5. **响应反馈**:浏览器驱动执行操作后,会将结果(如元素定位、属性获取等)返回给测试脚本。这样,测试脚本可以根据这些结果进行下一步的操作,或者验证预期的测试结果。6. **跨平台支持**:Selenium 2支持多种操作系统和浏览器,因为WebDriver针对不同的浏览器实现了统一的接口。这意味着,编写一次测试脚本,可以在不同的浏览器和操作系统上运行。7. **分布式测试**:Selenium 2还支持分布式测试,允许将测试用例分发到不同的机器上执行,从而提高测试的效率和覆盖范围。通过这种方式,Selenium 2提供了一种更为直接和强大的方式来控制浏览器行为,使得自动化测试更加灵活和可靠。
简化版本:简化来说,Selenium 2(WebDriver)的工作流程如下:启动浏览器:测试脚本通过浏览器驱动程序启动指定的浏览器。发送命令:测试脚本使用WebDriver的API发送命令给浏览器驱动,这些命令可以是打开网页、点击元素、输入文本等操作。执行操作:浏览器驱动接收命令后,调用浏览器自身的接口执行这些操作。返回结果:浏览器驱动将操作的结果(如元素的状态、页面的URL等)返回给测试脚本。循环交互:测试脚本根据返回的结果进行判断和下一步操作,如此循环,直到完成所有测试步骤。这个过程相当于是一个“请求-响应”模型,测试脚本与浏览器驱动之间通过这种模型进行持续的交互。

 

webdriver的原理

特点:selenium框架+Testng框架+Yaml文件(页面元素保存)

 

三、PO模式的应用(P、O模式)

 把每个页面的元素、和业务逻辑,分离开。

分层

数据封装--yaml文件

里面就是获取元素的方式(type)和值(value)的存储

如何定位页面元素

使用chrome的Xpath Finder插件

 

页面对象层

 事件操作层

 业务逻辑层

截屏功能

用例执行失败的时候,对页面截屏,这样可以知道是在什么场景失败的

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/636953.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一堆喷儿香喷儿香的工具网站-已经收藏-搜嗖工具箱!

文心一言 https://yiyan.baidu.com/ ​ ChatGpt横空出世的横空出世好像一把钥匙,开启了大模型时代,国内也有不错的产品,比如百度的文心一言,从3.5到4.0看得见的成长,现在的文心一言是我们工作中不可缺少的好帮手&am…

JavaEE 初阶篇-深入了解 File 文件操作(实现文件搜索、非空文件夹删除)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 File 文件概述 2.0 创建 File 类对象的方法 2.1 判断文件类型、获取文件信息的方法 2.2 创建文件、删除文件的方法 2.3 遍历文件夹的方法 3.0 文件搜索与删除 3.1…

HDMI to TYPE-C芯片|HDMI2.0转TYPE-C转接器方案|CS5802设计方案|ASL CS5802

CS5802输入端可以是1080P、4K30、4K60HZ这三种规格,输出的接口可以是TYPE-C信号接口,或者是TYPE-C信号接口,输入端HDMI由4路信号组成,支持1.62Gbps、2.7Gbps、5.4Gbps链路速率。内置可选SSC功能可降低EMI的干扰状况。 ASL CS5802芯片概述: 符合HDMI规范…

WordPress自动记录404死链方法+实用代码

WordPress自动记录404死链方法实用代码 WordPress自动将404死链记录到TXT文档中 在网站根目录新建文件: 404.txt,并设置权限为:755 将以下代码粘贴到你的 WordPress 主题中的 404.php $error_url https://.$_SERVER[HTTP_HOST].$_SERVER[…

【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理

💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 Spring Boot 配置文件一. 配置文…

Java关键字和API

1 this和super关键字 1.this和super的意义 this:当前对象 在构造器和非静态代码块中,表示正在new的对象 在实例方法中,表示调用当前方法的对象 super:引用父类声明的成员 无论是this和super都是和对象有关的。 2.this和sup…

【微服务】spring读取配置文件多种方式深入详解

目录 一、前言 二、java配置文件介绍 2.1 java配置文件产生原因 2.2 项目使用配置文件好处 2.3 springboot项目配置文件的必要性 2.4 微服务架构下配置文件使用场景 三、java读取配置文件常用方法 3.1 使用Properties类读取配置文件 3.1.1 使用getResourceAsStream读取…

C++数组

概述: 所谓数组,就是一个集合,里面存放了相同类型的数据元素。 特点1:数组中的每个数据元素都是相同的类型 特点2:数组是由连续的内存位置组成的 一维数组 一维数组定义的三种方式: 1.数据类型 数组名[数…

前端开发与html学习笔记

一、前端开发概述 前端开发:也叫做web前端开发,它指的是基于web的互联网产品的页面(也可叫界面)开发及功能开发互联网产品:指网站为满足用户需求而创建的用于运营的功能及服务,百度搜索、淘宝、QQ、微博、网易邮箱等都是互联网产…

软件测试如何自我提升

当一个软件测试工程师刚刚进入行业一到三年的时间,他们通常需要掌握一些基本技能和知识,并且需要学习一些新的技术和工具,以便更好地完成自己的测试工作。以下是一些建议,帮助测试工程师在这个阶段提升自己的技能。 掌握基本的测…

边缘计算智能分析网关V4地面垃圾AI检测算法介绍及场景应用

在传统的卫生监管场景中,无法及时发现地面遗留的垃圾,通过人工巡逻的方式需要大量的人力、物力和时间,而且效率不高,并存在一定的滞后性,而采用地面垃圾AI检测算法则可以大大提高监管效率。 TSINGSEE青犀AI智能分析网…

SpringBoot集成Sharding-jdbc水平分表分库

SpringBoot集成Sharding-jdbc水平分表分库 1.水平分表分库2.参数配置2.application.properties 3.代码测试3.1 数据插入 1.水平分表分库 概念在之前写章中:Sharding-JDBC笔记1 2.参数配置 2.application.properties # Server port server.port8080# MyBatis con…