【搭建自动化测试框架】

news/2024/11/29 7:47:23/

1、接口自动化怎么做?web自动化怎么做?

项目组自动化刚开始起步时,搭建自动化测试框架的实施过程:
(1)可行性分析
项目组做自动化的可行性分析,自动化实现到什么样的程度。
(2)方案选型
调研测试团队对于自动化技术的程度,一般会伴随着demo的演示(selenium、RF、requests)
(3)执行计划,搭建自动化测试框架,逐步实现,发现框架的问题进行改善
指定计划,提取或编写自动化测试用例,有leader编写自动化测试框架,组员编写和调试自动化测试脚本,无人值守jenkins,脚本的维护。
(4)把自动化流程化
编写框架的使用文档和规范文档。
(5)持续不断的完善框架
这个事情是一直需要做的,并不是说框架马上做完之后完全就可以用了,用是可以用,但是当我们有新的或者特殊的业务之后,框架处理不了,就需要完善我们的框架,让框架兼容新的需求。
(6)将自动化测试标准推广到其他的项目。

2、web自动化测试用例如何设计:如何提高web自动化用例脚本的稳定性?

web自动化测试用例设计:
自动化测试用例是从功能测试用例中提取出来的,主要提取的是冒烟用例和回归测试的用例,提取需要遵循以下原则:
1)优先覆盖核心用能用例,核心流程用例
2)尽量不要选非主流程中的复杂的用例
3)选取一些重复执行的用例,经常需要回归的用例
4)一般选取正向用例,(核心流程的反向用例也可以选)
如何提高web自动化测试的稳定性(web自动化稳定性是一个很大的问题):
1)尽量使用相对路径定位元素,不要使用绝对路径
2)定位元素需要封装到显示等待,保证元素能够加载完成
3)用例和用例之间尽量避免依赖。(比如所有用例都依赖于登录,那这种情况没办法,登录有问题,后面所有用例都执行失败)
4)加入用例失败重跑机制(pytest自带这个功能)
5)自动化测试的环境区分开其他环境(自动化测试环境是一个独立的环境,不能跟测试环境或者开发环境混在一起,它是一个独立的环境)

另外,接口自动化,覆盖率是100%,没什么好选的,全都要做自动化,除非不能做。

3、异常处理

1)NoSuchElementException 找不到元素
2)NoSuchAttributeException 找不到属性
3)NoSuchFrameException 找不到frame帧
4)ElementNotVisibleException 元素不可见(元素中一旦有style display none这种属性,那这个元素就是不可见的)
5)ElementNotSelectException 元素不可选
6)TimeOutException 元素超时
7)ArrayIndexOutofException 数组下标异常
8)TypeExcpetion 类型异常(如需要字典,但传入字符串等)

4、python库

webdriver、webdriverWait、os(处理路径)、xlrd、xlwt(处理Excel)、time(休眠)、logging、sys、htmltestrunner、json、csv、jsonpath、yaml、requests、re、pytest、allure

5、自动化测试的过程遇到的问题

1)元素定位不到
2)自动化测试用例出现误报(自动化测试fail,手工执行成功,原因元素频繁变更、自动化测试环境和开发环境不一致)
3)每一次自动化测试的结果会被覆盖(脚本去做可以,但用jenkins持续集成去做,很难)
4)数据库校验

6、用的框架

web自动化:
python + selenium + unitest / pytest + ddt / parameters + htmltestrunner / allure + jenkins

RF + selenium2library

接口自动化:
python + requests + pytest + parameters + allure + jenkins +yaml

7、自动化中有那三类等待

线程等待:建议少用,否则代码执行速度会很慢(就是time.sleep线程休眠)
隐式等待:全局等待(必用,必须等所有元素加载完成才不再等待,一般会结合元素定位一起使用)
显示等待:一般会和一个匿名函数一起使用(等待指定的某一个元素加载完成,则不再等待)

8、接口自动化测试框架中,接口关联是怎么做到的?

1、通过一个yaml文件来独立地保存所有的中间提取的变量,这个变量在执行用例之前清空,conftest
2、在测试用例的yaml文件里面通过一个关键字extract提取变量:json提取和正则表达式提取
3、在下一个接口通过{{}}或${}或者热加载的方式取值

市面上70%-80%的接口自动化都是通过yaml来存储数据的

9、requests中的Session会话管理的作用是什么

很多接口中都需要使用cookie或session来记录登录状态,而很多的接口必须要有这个登录状态才可以请求成功,requests中的session会话管理的作用就是自动地实现cookie和session的登录状态。
市面上所有的接口自动化框架和接口自动化平台都是通过session来发送请求的。


http://www.ppmy.cn/news/901380.html

相关文章

【驱动】TX2移植EC20启动模块

1、简述 TX2默认没有EC20(4G模块)的驱动。 连接usb后,使用lsusb查看可以看到EC20的vid和pid,但是不能上网,因此需要移植EC20的驱动 Bus 001 Devide 004: ID 2c7c:01252、4G驱动简述 在移远手册《Quectel_WCDMA&LTE_Linux_USB_Driver_User_Guide_V1.8.pdf》中,有各…

景嘉微7201

220112-驱动与固件-景嘉微7201驱动与固件-三期超翔TF830JM7201显卡黑屏、花屏、竖线或待机唤醒黑屏 JM72系列为了让驱动和系统内核解绑,驱动包含核内和核外两个驱动,两个驱动请都务必安装; 最近JM7201 替代R7 340 发货了, 导致对应…

赛宁Tech Talk丨工业网络安全“亮红灯” 超逼真工控仿真上阵守护

近年,传统行业数字化转型加速,工业互联网产值规模逐年扩大。工业互联网打破了传统工业控制系统相对封闭的生产环境,暴露面大大增加,网络安全问题关注度持续升温。 作为工业领域的“神经中枢”,工控系统网络安全保护面临…

jxd android 4.1刷机包,金星JXD V3固件

这是金星JXD V3固件,整理了一下有关金星JXD V3的官方固件包了,有没有需要的呢,这里把固件包整理一下也是方便大家以后好下载了,因此有一些机友还是不知道在哪里下载官方的rom包,在这里说的固件rom包也就是原版的系统包…

蓝凌EKP V12

https://github.com/harry1080/EKPV12 蓝凌EKP V12,蓝凌作为OA和知识管理领域绝对数一数二的供应商,其产品中关于流程的相关设计,还是很灵活很先进的,可能没有activity和jbpm的那么完善的功能,但是相比于这些开源组件…

CK-FR208-EC与汇川PLC配置走EtherCAT通讯指南

CK-FR208-EC与汇川PLC配置走EtherCAT通讯指南 CK-FR208-EC是一款支持标准工业Ethercat协议的多通道工业RFID读写器,读卡器工作频率为13.56MHZ,支持对I-CODE 2、I-CODE SLI等符合ISO15693国际标准协议格式标签的读写。 读卡器同时支持标准工业通讯协议Eth…

银河麒麟V10桌面版SP1(x86)上面运行和安装exe程序

1、安装CrossOver 首先先更新一下软件集: leallocalhost:sudo apt update 然后再安装 KWRE 版的微信。 leallocalhost:sudo apt install kylin-kwre-wechat 安装成功后打开CrossOver程序: 2、添加windows容器 介绍:容器有Windows 98、w…

数据库系列文章 之 MySQL分表的三种方法

先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。 根据个人经验,mysql执行一…