【web自动化测试】

news2024/10/7 20:27:28

文章目录

  • web自动化测试
    • 第一章 web自动化入门
      • 1.什么是自动化?
        • 1.1 优点
      • 2.什么是自动化测试?
        • 2.1 自动化测试能解决什么问题?
        • 2.2 自动化相关知识
          • 2.2.1优点
          • 2.2.2 误区
        • 2.3 自动化测试分类
      • 3.什么是Web自动化测试?
        • 3.1 什么Web项目适合做自动化测试?
        • 3.2 Web自动化测试在什么时候开始?
        • 3.3 Web自动化测试所属分类
      • 4.Web自动化测试工具
        • 1.主流的web自动化测试工具
    • 第二章 Selenium-API操作
      • 1.什么是Selenium?
        • 1.1Selenium特点
        • 1.2 环境搭建
          • 1.2.1 安装Python 开发环境
          • 1.2.2 安装selenium包
          • 1.2.3 安装浏览器
          • 1.2.4 下载浏览器驱动
          • 1.2.5 配置浏览器驱动环境变量
        • 1.3 科普path
        • 1.4 入门案例初体验
        • 1.5 谷歌浏览器安装selenium IDE 插件
      • 2.元素定位
        • 2.1目标
        • 2.2 如何进行元素定位
      • 3.元素定位方式(8种)
        • 3.1 id定位
      • 4.标准用例结构

web自动化测试

第一章 web自动化入门

1.什么是自动化?

由机器设备代替人工完成指定目标的过程

1.1 优点

1. 减少人工劳动力
2. 提高工作效率(批量生产)
3. 提高产品质量
4. 规格统一标准

2.什么是自动化测试?

软件测试:校验系统是否满足规定的需要,弄清预期结果和实际结果之间的差别

概念:让程序代替人工去验证系统功能的过程

2.1 自动化测试能解决什么问题?

1.解决-回归测试 [重点]:项目发布新版本之后对项目之前的功能进行验证
2.解决-压力测试:多用户同时去操作软件
3.解决-兼容性测试:不同浏览器(IE Firefox Chrome)等
4.提高测试效率,保证产品质量

2.2 自动化相关知识

2.2.1优点
1.较短的时间内运行更多的测试用例
2.自动化脚本可重复执行
3.减少人为的错误
4.克服手工测试的局限性
2.2.2 误区
1.自动化测试完全可以替代手工测试
2.自动化测试一定比手工测试厉害
3.自动化测试可以发掘更多的功能
4.自动化测试适用于所有功能

2.3 自动化测试分类

1.web-自动化测试
2.移动-自动化测试(app自动化)
3.接口-自动化测试(工具,代码)
4.单元测试-自动化测试

3.什么是Web自动化测试?

概念:让程序代替人工自动验证web项目功能的过程

3.1 什么Web项目适合做自动化测试?

1.需求变化不频繁
2.项目周期长
3.项目需要回归测试
4.需要频繁回归的场景
5.核心场景

什么是回归?1

3.2 Web自动化测试在什么时候开始?

功能测试完毕(手工测试)

3.3 Web自动化测试所属分类

1.黑盒测试(功能测试)Web自动化测试属于黑盒测试
2.白盒测试(单元测试)
3.灰盒测试(接口测试)

4.Web自动化测试工具

1.主流的web自动化测试工具

1.QTP 收费 支持 Web和桌面
2.Selenuim (免费常用)
3.Robot framework

第二章 Selenium-API操作

1.什么是Selenium?

selenium官方网站

Selenium是一个用于Web应用程序的自动化工具,中文意思是(硒)

1.1Selenium特点

1.免费开源
2.跨平台
3.支持多种浏览器
4.支持多语言
5.成熟稳定
6.功能强大

1.2 环境搭建

1.Python 开发环境
2.安装selenium包
3.安装浏览器
4.安装浏览器驱动
1.2.1 安装Python 开发环境

下载Pyhon3.10

1.2.2 安装selenium包
  • 安装最新版selenium pip install selenium
  • 检查版本 pip show selenium
Name: selenium
Version: 2.48.0
Summary: Python bindings for Selenium
Home-page: https://github.com/SeleniumHQ/selenium/
Author:
Author-email:
License: UNKNOWN
Location: d:\python\lib\site-packages
Requires:
Required-by:


Name: selenium
Version: 4.8.3
Summary:
Home-page: https://www.selenium.dev
Author:
Author-email:
License: Apache 2.0
Location: d:\python\lib\site-packages
Requires: certifi, trio, trio-websocket, urllib3
Required-by:
  • 卸载 selenium pip uninstall selenium
  • 安装指定版本 pip install selenium==2.48.0
1.2.3 安装浏览器

下载谷歌浏览器

1.2.4 下载浏览器驱动

下载谷歌浏览器驱动

1.2.5 配置浏览器驱动环境变量

将浏览器驱动所在位置添加到环境变量比如: D:\soft\chromedriver

1.3 科普path

dos 命令执行顺序:
	1. 检测是否为内部命令
	2. 检测是否为当前目录下的可执行文件
	3. 检测是否是环境变量path指定的目录

1.4 入门案例初体验

# 导包 webdriver
from selenium import webdriver
from time import sleep

# 获取谷歌浏览器对象
driver = webdriver.Chrome()

# 打开百度
driver.get("http://www.baidu.com")

# 休眠3秒
sleep(3)

# 关闭浏览器
driver.quit()
  1. 导包 from selenium import webdriver
  2. 获取浏览器驱动对象 driver=webdriver.Chrome()
  3. 打开url driver.get("url")
  4. 关闭驱动 driver.quit()

1.5 谷歌浏览器安装selenium IDE 插件

2.元素定位

2.1目标

掌握 id name class_name tag_name link_text partial_link_text等定位方式的使用

为什么要学习元素定位?
让程序操作指定元素,就必须先找到此元素。

2.2 如何进行元素定位

<input id="username" type="text" name="username" placeholder="用户名"/>
<div id="my_cart">
    <span>我的购物车</span>
</div>

元素定位是通过元素的信息或元素层级结构定位元素

3.元素定位方式(8种)

Selenium提供了八种定位元素方式:
1.id
2.name
3.class_name (根据元素的class属性定位)
4.tag_name (标签名定位)
5.link_text  (定位 超链接a标签) 
6.partial_link_text   (定位 超链接a标签 模糊)
7.XPath (基于元素路径)
8.CSS  (元素选择器)

汇总:

  1. 基于元素属性的特有定位方式 :id name class_name
  2. 基于元素标签名称的定位 tag_name
  3. 定位超链接文本: link_text partial_link_text
  4. 基于元素路径定位:XPath
  5. 基于选择器:css

新版元素定位方法

3.1 id定位

id 定位即通过元素的id来定位元素,HTML规定id属性在整个HTML文档中必须唯一
前提:元素有id属性

2.48.0版本 id定位方法

element = driver.find_element_by_id(id)
from selenium import webdriver
from time import sleep


class TestSoGou:
    def test_sogou(self):
        driver = webdriver.Chrome()
        driver.get("https://www.sogou.com/")
        driver.find_element_by_id("query").click()
        driver.find_element_by_id("query").send_keys("什么是java")
        driver.find_element_by_id("stb").click()
        sleep(5)
        driver.quit()

4.8.3版本 id定位方法

from selenium import webdriver
from time import sleep

from selenium.webdriver.common.by import By


class TestSoGou:
    def test_sogou(self):
        driver = webdriver.Chrome()
        driver.get("https://www.sogou.com/")
        driver.find_element(By.ID, "query").click()
        driver.find_element(By.ID, "query").send_keys("缪宇翔是谁")
        driver.find_element(By.ID, "stb").click()
        sleep(5)
        driver.quit()

4.标准用例结构

用例标题类型前提条件用例步骤预期结果实际结果后置动作
搜狗搜索功能正例进入搜狗主页1.输入搜索关键词
2.按下回车键
1.搜索成功
2.搜索结果包含关键字
关闭driver进程


  1. 项目发布新版本之后对项目之前的功能进行验证 ↩︎

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter 了解 Element

一 Element 概念 这个玩意的概念。到底是什么 &#xff1f; 官方解释是在树中特定位置的实例。 二 继承关系 element 有 ComponentElement 和 RenderObjectElement 之分 1 ComponentElement class StatelessElement extends ComponentElement class StatefulElement extend…

计及调度经济性的光热电站储热容量配置方法

目录 1 主要内容 目标函数 光热电站能量传递过程 2 部分程序 3 程序结果 4 程序链接 1 主要内容 该程序复现《计及调度经济性的光热电站储热容量配置方法》模型&#xff0c;综合考虑火电机组发电成本、光热发电并网消纳的环境效益和运行维护成本、系统旋转备用成本等调度…

rk3568点亮LCD(RGB)

rk3568 Android11/12 调试 RGB 屏 RGB一般是指RGB色彩模型(RGB color model)&#xff0c;是工业界的一种颜色标准。RGB接口占用的资源较多&#xff0c;所以这个接口的LCD刷新率非常快&#xff0c;软件控制也比较简单。缺点是控制需要增加电路&#xff0c;软件初始化需要增加程…

【BOM浏览器对象模型】

BOM浏览器对象模型1 本节目标2 BOM概述3 window对象的常见事件3.1 窗口加载事件3.2 调整窗口大小事件4 定时器4.1 两种定时器4.2 setTimeout()定时器4.3 停止setTimeout()定时器4.4 setInterval()定时器4.5 停止setInterval()定时器4.6 this指向问题5 JS执行队列5.1 JS是单线程…

BUUCTF-.htaccess-sql.fuzz-D盾

第七周第一次 目录 WEB [MRCTF2020]你传你&#x1f40e;呢 ​编辑 [极客大挑战 2019]HardSQL Crypto 萌萌哒的八戒 传统知识古典密码 Misc 假如给我三天光明 后门查杀 WEB [MRCTF2020]你传你&#x1f40e;呢 文件上传 我们进行尝试 设置一个 1.jpg的一句话木马 G…

RabbitMQ之高级特性

文章目录一、消息确认机制&#x1f389;1.1 消息发送确认(生产者)&#x1f539;confirm 确认模式&#x1f539;return 回退模式&#x1f6a9;1.2 消息接收确认(消费者)&#x1f538;none 自动确认&#x1f538;auto 异常确认&#x1f538;manual 手动确认二、消费端限流 (prefe…

创略科技联合创始人兼总裁杨辰韵:AIGC、隐私计算赋能数字营销的本质是“以客户为中心”丨数据猿专访...

‍数据智能产业创新服务媒体——聚焦数智 改变商业MarTech概念现身已超十年&#xff0c;伴随着企业数字化转型的大背景&#xff0c;中国MarTech市场也迎来了高速发展。据《2022年中国MarTech市场洞察报告》数据显示&#xff0c;2017-2021年&#xff0c;中国 MarTech产业规模从…

H264码流中 SPS PPS SEI 详解

1 客户端抓包 在做客户端视频解码时&#xff0c;一般都会使用Wireshark抓包工具对接收的H264码流进行分析&#xff0c;如下所示&#xff1a; 在这里我们可以看到对解码视频起关键作用的SPS和PPS。 2、双击SPS内容如下&#xff1a; 那么从上面的sps中我们知道图像的宽&#x…

【从零开始学Skynet】实战篇《球球大作战》(二):结构设计

万丈高楼平地起&#xff0c;既然这是个“大项目”&#xff0c;就要有大项目的样子&#xff0c;就要有所规划&#xff0c;下面先把项目的目录结构搭起来。 1、目录结构 建议把Skynet框架放到一个文件夹里&#xff0c;把所有自己编写的内容都放到外层的文件夹里。建立如下表所示的…

MySQL运维10-MySQL数据的导入导出

文章目录0、概述1、mysqldump导出数据mysql导入数据1.1、使用mysqldump导出数据1.1.1、使用--tables导出指定表1.1.2、使用--tab选项将表定义文件和数据文件分开导出1.1.3、使用--fields-terminated-by选项定义数据分隔符1.1.4、使用--databases选项导出整个库或多个库1.1.5、使…

Python算法设计 - 蒙特卡洛法

版权声明&#xff1a;原创不易&#xff0c;本文禁止抄袭、转载&#xff0c;侵权必究&#xff01; 目录一、蒙特卡洛法二、求圆周率π三、Python算法实现四、作者Info一、蒙特卡洛法 蒙特卡洛方法又称统计模拟法&#xff0c;随机抽样技术&#xff0c;是一种随机模拟方法&#x…

pytorch进阶学习(五):神经网络迁移学习应用的保姆级详细介绍,如何将训练好的模型替换成自己所需模型

代码资源和数据集资源使用进阶学习&#xff08;四&#xff09;中的代码&#xff0c;大家可以配合食用哟~ pytorch进阶学习&#xff08;四&#xff09;&#xff1a;使用不同分类模型进行数据训练&#xff08;alexnet、resnet、vgg等&#xff09;_好喜欢吃红柚子的博客-CSDN博客…

数据结构之八大排序算法

文章目录一.常见的排序二.插入排序三.希尔排序四.选择排序五.堆排序六.冒泡排序七.快速排序八.归并排序九.计数排序十.排序总结一.常见的排序 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起…

pytorch性能分析工具Profiler

1. Torch Profiler工具介绍 https://zhuanlan.zhihu.com/p/360479566 PyTorch Profiler 是一个开源工具,可以对大规模深度学习模型进行准确高效的性能分析。包括如下等功能: 分析model的GPU、CPU的使用率各种算子op的时间消耗trace网络在pipeline的CPU和GPU的使用情况Profil…

Educational Codeforces Round 146 (Rated for Div. 2) - B. Long Legs(思维 数学)

题目如下&#xff1a; 题目链接 题解 or 思路&#xff1a; 我们可以发现我们有两个可选的入手方向&#xff1a; 1.正推 2.反推 我们可以发现正推似乎看不出来什么东西&#xff0c;而反推可以发现一个性质&#xff01; 性质如下&#xff1a; 我们假设最终的腿长为 MMM 可以得到…

sql需要注意的地方 以及 云记模块逻辑

标题模糊搜素时 sql语句需要注意的地方 用concat拼; 用户行为 actionName 进入发布云记页面 actionNameview 添加或修改云记 actionNameaddOrUpdate 查询云记详情 actionNamedetail 删除云记 actionNamedelete 分页查询云记列表 …

第05章_数组

第05章_数组 讲师&#xff1a;尚硅谷-宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 本章专题与脉络 1. 数组的概述 1.1 为什么需要数组 需求分析1&#xff1a; 需要统计某公司50个员工的工资情况&#xff0c;例如计…

chatGPT中文版入口-chatGPT不可以用的地区

ChatGPT老出现不可用 如果您在使用ChatGPT时发现它经常不可用&#xff0c;可能是由于以下原因&#xff1a; OpenAI API的服务不稳定。由于技术问题、网络问题或维护&#xff08;如软件更新&#xff09;等原因导致OpenAI API服务不稳定&#xff0c;会导致ChatGPT无法使用。 接…

【JSON学习笔记】2.JSON vs XML及JSON的对象和数组

前言 本章介绍JSON vs XML及JSON的对象和数组。 JSON vs XML JSON 和 XML 都用于接收 web 服务端的数据。 JSON 和 XML在写法上有所不同&#xff0c;如下所示&#xff1a; JSON 实例 {"sites": [{ "name":"csdn教程" , "url":&q…

〖Python网络爬虫实战⑪〗- 正则表达式实战(二)

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;目前专栏免费订阅&#xff0c;在转为付费专栏前订阅本专栏的&#xff0c;可以免费订阅付费…