自动化测试(一)

article/2025/10/14 14:04:01

利用测试自动化工具,更轻松地编写测试套件,减轻人为干预并提高测试ROI回报率。

业务关键测试用例,重复测试用例,功能测试用例

web自动化测试工具

QTP一个商业化的功能测试工具,收费,支持web,桌面自动化测试。

selenium 是一个开源的web自动化测试工具,免费,主要做功能测试。

开源软件,开源与免费的区别

跨平台,linux,Windows,mac,有不同的安装包,或者编好的脚本在任何一种系统都可以使用;

支持多浏览器

支持多种语言:与后台开发的语言类型没有关系;

selenium2.0和selenium3.0的区别;

驱动的含义:引导操作系统识别硬件;

API

框架设计:编写脚本,通过直接运行代码或调用应用程序的API或用户界面来自动运行测试

1、什么是web自动化测试?让程序或者工具代替人为对web程序进行的验证过程.

2、优点:提高效率,减少人为错误,可重复运行

3、误区:自动化测试一定比手工厉害,能发现更多bug,完全替代手工测试,所有功能都能进行自动化;

4、什么项目适合自动化?项目周期长,项目需求变化不频繁,需要回归测试的都需要自动化(银行/部队项目?????)

补:dos命令默认搜索顺序:

1.检测是否为内部命令;

2.检测是否为当前目录下可执行文件

3.检测path环境变量指定的目录;

提示:如果以上搜索目录都检测不到命令或可执行文件,系统会抛出不是内部或外部命令;在web环境中,如果不将浏览器驱动添加到path中,selenium在运行的时候会提示浏览器驱动有误;

二、环境搭建

1、安装python解释器以及可视化工具       #pip install selenium

2、安装浏览器(谷歌/火狐)

3、安装浏览器驱动

浏览器以及驱动的安装,注意浏览器驱动必须和浏览器版本对应;

chrome安装驱动:参考:Selenium 启动firefox浏览器 上报selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.。 - GalaxyStar - 博客园

火狐驱动下载地址:https://github.com/mozilla/geckodriver/releases,放入python.exe对应的目录下;环境变量添加firefox.exe所在路径;

谷歌驱动下载地址:打开http://chromedriver.storage.googleapis.com/index.html,选择对应版本进行下载,放入python.exe对应的目录下;环境变量添加chrome.exe所在路径;

三、元素定位方式:

8种:

基于元素属性:id,name,classs_name

基于标签名称:tag_name

基于文本及连接:link_text,partial_link_text

基于元素路径:xpath

基于选择器:css

id定位通过元素的id属性来定位,方法:driver.find.element_by_id(id),元素必须要有id属性,一般是唯一标识符;

name定位通过元素的name属性来定位,方法:driver.find.element_by_name(name),元素必须要有name属性,可以重名(部分设置同等大小文本框);

class_name定位通过元素的class属性来定位,方法driver.find.element_by_class_name(class),元素必须要有class属性,多个命名,任意一个命名都可以(找字体,找颜色);(html语言)

尖括号后面的就是标签名,a标签代表超链接,还有其他标签如span,div,input……,当标签名是input,type='submit'或者type='text',它就是按钮。

tag_name定位通过标签名来定位,方法:driver.find.element_by_tag_name(tag_name),html本质就是由不同的tag组成,每一种标签一般会存在多个,如果存在多个相同标签,则返回符合条件的第一个标签,如何定位第二个元素???

link_text定位专门用来定位超链接元素(<a>标签</a>),并且通过文本内容匹配元素。方法:driver.find.element_by_link_text( ),是精准匹配。

partial_link_text同上,方法:driver.find.element_by_partial_link_text( ).click( ),可以精准或者模糊匹配。作用:进行点击进入页面

XML:一种标记语言,嵌套结构,用于数据的存储和传递

HTML:显示数据

CSS:显示文本或者元素样式

单元测试:声明格式,根节点,注意格式;
Xpath定位:xml path,定位策略:1.路径2.路径结合属性3.路径结合逻辑4.路径结合层级

方法:driver.find.element_by_xpath( ),绝对路径:从最外层元素到指定元素的所有路径,以单斜杠/开头,相对路径以//开头,后跟元素名称。

绝对路径:

相对路径:如果要跟元素的属性值必须加上中括号和@符号

 xpath延申:

 第一个一般适合p标签,a标签;attrubute指的是元素名,XXX指的是属性值;

定位一组列表:

方法:driver.find.elements_by_partial_link_text( ).click( ),

返回结果:类型为列表,要对列表进行访问和操作必须指定下标或进行遍历。【下标从0开始】

css, 用来描述HTML样式,选择器,在css语言中用css选择器来定位元素;

方法:

driver.find_element_by_css_selector(id/class/……)

css定位常用策略:

id选择器,class选择器,元素选择器,属性选择器,层级选择器;

id选择器,格式:#id;

class选择器,格式:.class;

元素选择器:本身页面显示的文字;语法:element,如input

属性选择器:格式:[……],括号里可以是任何元素或属性;[属性名=属性值]

层级选择器:1、body>input2、body input的区别,>不能跨级,多个时加上id定位;

 

 css扩展:

input[type^='p']        type属性以p开头的元素,例如

driver.find_element_by_css_selector('[name^='us']y').send_keys('大学')

input[type$='p']        type属性以p结束的元素

input[type*='p']        type属性包含p的元素

css实在定位不到采用xpath定位; 


4、定位一组元素

 5、定位元素之封装,底层实现

 6、元素操作

项目:填写信息,并进行修改,修改之间点击确定按钮,进行跳转;

注:在输入方法之前一定要清空操作,否则会对内容进行追加;

 7、浏览器常用方法

案例:将浏览器最大化-----设定固定大小300*200-------移动浏览器窗口位置----最大化-----填入值----点击访问某网站--执行后退

 窗口位置(0,0)是左上角,往下往右是坐标值进行增大;后退操作一定是在前进操作后面;

窗口唯一标识是用itle分辨的,可以用来切换title,当页面进行切换时title会发生变化,例如可以用来检验页面是否登录成功/上一步执行操作是否成功(title/current_url/text三种方式);


http://chatgpt.dhexx.cn/article/FbpgyZZk.shtml

相关文章

自动化测试-使用python控制MYSQL数据库(pymysql)

当需要对大量的数据进行处理并写入/读取数据库时&#xff0c;直接使用Linux显然会显得力不从心&#xff0c;即使是图形化的Navicat Premium在处理大批量数据时也难以招架&#xff0c;只能通过SQL语句结合导入导出来实现一些事情&#xff0c;本文分享使用python语言中的pymysql包…

自动化测试基本流程

下图是自动化测试的基本流程图&#xff0c;以及每个阶段的任务负责人&#xff0c;输出等。 1、制定测试计划 在展开自动化测试之前&#xff0c;最好做个测试计划&#xff0c;明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求&#xff0c;并确保测试所需的…

最完整的自动化测试流程

今天笔者就要归纳总结下一整套测试流程&#xff0c;从无到有&#xff0c;实现零突破&#xff0c;包括如何编写测试用例&#xff0c;定时执行测试用例&#xff0c;查找最新生成的测试报告文件&#xff0c;自动发送最新测试报告邮件&#xff0c;一整套完整的测试流程。以后各位只…

图解《字典学习》

PPT&代码链接 csdn:https://download.csdn.net/download/u012037852/10899017 github:https://github.com/longfeizhou2016/Dictionary-learning

python学习 字典

22-9-15 1.格式&#xff1a;大括号{} eg&#xff1a; 2.创建字典&#xff1a; 6种常用方法&#xff1a; 3.增&#xff1a; 1.formkeys&#xff1a; eg&#xff1a; 2&#xff1a; 用此种方法,若键值存在&#xff0c;则修改其value&#xff0c;若不存在&#xff0c;则新…

[转]字典学习/稀疏编码

本文转自https://zhuanlan.zhihu.com/p/26015351 机器学习——字典学习/稀疏编码学习笔记 Esquirrel 2 个月前 以下资料是小编学习字典学习/稀疏编码时&#xff0c;整理的高质量的网络博客&#xff0c;供大家参考。欢迎留言交流&#xff0c;批评指正理解不足。 最Highlight的地…

【零散知识】字典学习(Dictionary Learning)

前言&#xff1a; { 之前的神经网络实践还卡在硬件上&#xff0c;不过目前已经打算先使用云设备&#xff0c;下次应该就会继续进行多目标识别的调试。这次就先写一点零散知识。 在专利[1]中我遇到了新的观点——字典学习&#xff08;Dictionary Learning&#xff09;。 } 正…

Python-字典学习

这次主要学习了字典学习的相关知识以及选择分支结构&#xff0c;根据课程编写了下图一些代码&#xff1a;

Python中的字典学习笔记

字典的格式&#xff1a;{"key":"value"} key表示数据的含义&#xff0c;value表示对应的数据的值字典是一种可变的数据类型&#xff0c;从python3.7开始&#xff0c;字典是有序的。 字典创建的方式 1、通过{}&#xff0c;要使用key:value的格式&#xff0c…

『ML笔记』字典学习3(Dictionary Learning,KSVD)

文章目录 一、字典学习数学模型1.1、数学描述1.2、求解问题1.3、字典学习算法实现 字典学习也是一种数据降维的方法&#xff0c;这里我用到SVD的知识&#xff0c;对SVD不太理解的地方&#xff0c;可以看看这篇博客&#xff1a; 奇异值分解SVD 一、字典学习数学模型 字典学习的…

字典学习日记

字典的创建 在定义字典时&#xff0c;每个元素都包含了两部分&#xff1a;键&#xff08;key&#xff09;和值&#xff08;value&#xff09;&#xff0c;并且在“键”和“值”之间使用英文冒号分隔&#xff0c;相邻两个元素使用英文逗号分离&#xff0c;所有的元素都放…

Dictionary Learning(字典学习、稀疏表示以及其他)

第一部分 字典学习以及稀疏表示的概要 字典学习&#xff08;Dictionary Learning&#xff09;和稀疏表示&#xff08;Sparse Representation&#xff09;在学术界的正式称谓应该是 稀疏字典学习&#xff08;Sparse Dictionary Learning&#xff09;。该算法理论包含两个阶段&am…

字典的学习笔记

列表 [] 单身什么是字典 {} 二人世界 python内置的数据结构之一&#xff0c;与列表一样是一个可变序列(可以增删改操作的) 以键值对的方式存储数据&#xff0c;字典是一个无序的序列 -> hash(key) 通过哈希函数来计算存储位置,key一定是不可变的字典的创建 使用花…

python学习之字典

目录 一、字典格式 二、操作 1、添加元素 2、修改value值 3、删除 4、遍历和查询 5、合并字典 三、小结 一、字典格式 特点&#xff1a;是以键值对的形式存储 结构&#xff1a;{键1&#xff1a;值&#xff0c;键2&#xff1a;值&#xff0c;键3&#xff1a;值} 字典…

『ML笔记』深入浅出字典学习1(Dictionary Learning)

目录 一、预备知识 二、字典学习以及稀疏表示的概要 2.1、我们为什么需要字典学习&#xff1f; 2.2、我们为什么需要稀疏表示&#xff1f; 三、下一节 参考文献 一、预备知识 稀疏向量&#xff1a;假设向量中的元素绝大部分为零元素&#xff0c;则称该向量是稀疏的。 …

机器学习(十三)k-svd字典学习

k-svd字典学习 原文地址:http://blog.csdn.net/hjimce/article/details/50810129 作者&#xff1a;hjimce 一、字典学习 字典学习也可简单称之为稀疏编码&#xff0c;字典学习偏向于学习字典D。从矩阵分解角度&#xff0c;看字典学习过程&#xff1a;给定样本数据集Y&…

字典学习(KSVD)详解

关于字典学习 对于一个事物&#xff0c;我们如何表征它呢&#xff1f;很明显&#xff0c;这个事物是有特征的&#xff0c;或者说&#xff0c;这个事物它是由许多个不同的特征经过一定的组合而形成的。字典学习的目标是提取实物的最本质特征。用字典来表征该事物的特征。&#…

语音增强———字典学习介绍

语音增强--------------字典学习 字典学习就是用较少的特征&#xff08;原子&#xff09;来表示信号&#xff0c;那么信号的多个特征组合就相当于多个原子组成的字典&#xff0c;那么信号就可以用字典中少量的原子进行表示。信号在字典下的表示系数越系数&#xff0c;那么重构…

字典学习(Dictionary Learning)

字典学习——Dictionary Learning 我主要从一下几个方面分享一下。 什么是字典学习字典学习的理论依据及公式字典学习的应用 1、什么是字典学习&#xff1f; 在人类发展的近几千年历史中&#xff0c;文字对人类文明的推动起着举足轻重的作用。人类用文字记述了千年的历史&a…

为什么我们需要机器学习,机器学习主要应用在哪几方面?

一、为什么需要机器学习&#xff1f; 有些任务直接编码较为复杂&#xff0c;我们不能处理所有的细微之处和简单编码&#xff0c;因此&#xff0c;机器学习很有必要。相反&#xff0c;我们向机器学习算法提供大量数据&#xff0c;让算法不断探索数据并构建模型来解决问题。比如…