接口/Web自动化测试如何做?框架如何搭建封装?

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

自动化测试怎么做的?

UI和接口相结合,通常以接口为主,UI为辅。

原因:
接口执行效率高,可测试的代码覆盖率高,维护成本低,属于低成本,高收益。
UI自动化执行效率低,并且容易受其他原因(电脑卡顿,浏览器卡顿,网速等)影响导致脚本执行失败,覆盖率难以提升,维护成本较高,属于投入较高,收益较低的类型。

但它的优点就是可以完全模拟用户行为,更贴近真实。所以需要两者都做。

接口测试怎么做的?

前置条件:
接口测试需要项目需求 , 接口文档/接口规范;
如果没有接口规范/文档,也能做,使用抓包工具获取接口报文,看不明白的字段找对应的开发了解;

目的:了解接口中的字段限制条件:
例如:必填选填字段类型(int,str,date),长度,特殊字符?字母加数字?

使用jmeter做接口自动化测试

做接口测试的时机?

1、在项目开发过程中,需求评审结束后 ,满足接口测试需要,可以与开发人员同步开发接口测试脚本,在后台开发完成后可以直接完成接口测试,不必等前端页面开发完成

2、回归测试: 接口自动化,项目发布之前完成全流程的回归测试

做接口测试的步骤:
先写一个正常流的测试脚本;
提取脚本中的参数,修改成变量;
根据需要使用自定义变量 或者 csv参数化 或者 数据库查询提取;
添加断言结果并参数化;
补充csv里面的业务数据,完善测试场景;
实现数据驱动测试;

使用接口测试/jmeter达到了什么目的/满足了什么需求/解决了什么问题?

1、提高项目迭代开发过程中的测试结果反应速度(参考做接口测试时机)
2、提高回归测试的效率,并且提高测试场景覆盖率和代码覆盖率
3、解决项目中重复制造测试数据的问题(具体方法:将某些业务流程封装成接口脚本,并且参数化,可重复使用脚本制造测试数据。也可以给不懂接口测试的人使用)

接口测试可以绕过前端的限制, 还可以让测试人员提早介入测试

UI自动化测试怎么做的?

前置条件:
业务成熟,界面较稳定的时候会考虑UI自动化,(通常只实现业务主流程,不会全流程覆盖)

使用selenium+pytest+allure做UI自动化测试,selenium封装了很多操作浏览器的方法,还可以执行JS等,可以完全模拟人来做业务测试。

pytest是一个单元测试框架,可以用来控制测试流程,实现参数化,收集测试数据等;allure 美化测试报告用,编程语言用python

做UI自动化的时机:
1、业务成熟,界面较稳定
2、项目中测试重点在UI层面的

做UI自动化测试的步骤:
整理出需要实现的UI自动化的场景和业务流程;
搭建UI自动化环境(第一次做要这样,后续不用只是集成到之前的项目里);
编写正常流的测试脚本;
添加断言;
增加异常流程的分支判断及脚本编写;
提取脚本中的变量参数;
使用xlrd+parametrize实现数据驱动测试;
优化并重构脚本(例如提取业务中常用的界面元素;封装业务中的阶段流程,使之可以复用,完成业务驱动测试;

搭建自动化测试框架?

接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;

31

说明:
base_api.py:对Requests库进行二次封装,完成对api的驱动

api:继承base_api,将http请求接口封装成Python方法

utils:CommonUtil,公共模块,将一些公共函数、方法以及通用操作进行封装,如:日志模块、yaml操作模块、时间模块

config:配置文件模块,配置信息存放,如:URL、Port、Headers、Token、数据库信息等

data:测试数据模块,用于测试数据的管理,数据与脚本分离,降低维护成本,提高可移植性,如:yml文件数据

cases:测试用例模块,用于测试用例的管理,这里会用到单元测试框架,如:Pytest、Unittest

run.py:批量执行测试用例的主程序,根据不同需求不同场景进行组装,遵循框架的灵活性和扩展性

logs:日志模块,用于记录和管理日志,针对不同情况,设置不同的日志级别,方便定位问题

reports:测试报告模块,用于测试报告的生成和管理,如:基于Allure生成的定制化报告

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

不要停下脚步,追寻你内心的激情与渴望,用勇气和毅力探索未知。即使失败也无所畏惧,因为每次努力都在逼近成功。相信自己的价值,扬起风帆,驾驭命运,奋斗出属于自己的辉煌人生。

每一天都是新的开始,抓住机会追逐梦想,不断前行。困难只是暂时的挫折,坚持才是关键。用汗水浇灌今天的努力,收获明天的成就。

在逆境中才能见真英雄,只要有梦想,就勇往直前,奋斗不止。每一次努力都会让自己变得更强大,每一次挑战都是成长的契机。坚持不懈,追求卓越,终将收获辉煌的人生。

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

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

相关文章

Windows7+内网, 安装高版本nodejs,使用vite+vue3+typescript开发项目

前言:vite只支持高版本的nodejs,而高版本的nodejs只支持windows8及以上,且vite还对浏览器版本有兼容问题。以下均为vite官网截图 1、安装好低版本的nodejs win7系统建议安装13.及以下,我的是12.12.0这个版本。nodejs低版本官网下载…

JavaScript(四)DOM及CSS操作

1、DOM简介 DocumentType: Html的声明标签 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docume…

网络:SecureCRT介绍

1. 使用Tab键补全时出现^I&#xff0c;如下操作

【万字长文】SpringBoot整合MyBatis搭建MySQL多数据源完整教程(提供Gitee源码)

前言&#xff1a;在我往期的博客介绍了2种关于如何使用SpringBoot搭建多数据源操作&#xff0c;本期博客我参考的是目前主流的框架&#xff0c;把最后一种整合多数据源的方式以博客的形式讲解完&#xff0c;整合的过程比较传统和复杂&#xff0c;不过我依旧会把每个实体类的思路…

利用鸿鹄可观测性监控Istio Ingress网关

一、需求描述 在上一篇《利用Vector和鸿鹄搭建微服务应用的可观测性平台》中&#xff0c;阐述了微服务的基本概念、优点及如何利用鸿鹄来处理分布式应用的日志。本文将进一步讨论微服务架构面临的问题、服务网格及鸿鹄处理Istio Gateway的独特优势。 1.1 微服务架构面临的挑战 …

基于SpringBoot+Vue的地方废物回收机构管理系统设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

企业生产管理的核心工作是什么?

作为管理者&#xff0c;一谈到生产管理&#xff0c;你可能会想到很多生产过程中的问题&#xff1a; 产量无法实时统计&#xff1b; 计划不能跟踪进度&#xff1b; 质量追溯无法实现...... 等等一系列核心问题。 结合这些核心痛点&#xff0c;分享一套符合现在生产的智能化解决…

初阶结构体(超详解)

初阶结构体 1. 结构体的声明1.1 结构的基础知识1.2 结构的声明1.3 结构成员的类型1.4 结构体变量的初始化和定义 2. 结构体的访问3. 结构体传参 1. 结构体的声明 1.1 结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量 结…

cmake 配置Visual studio的调试命令

配置代码如截图&#xff1a; set_property(TARGET ${TARGET_NAME} PROPERTY VS_DEBUGGER_COMMAND "./consoleTest.exe") set_property(TARGET ${TARGET_NAME} PROPERTY VS_DEBUGGER_COMMAND_ARGUMENTS "./config/labelDriver.cfg") set_propert…

服务机器人有哪些品类

服务机器人是指具备自主运动、感知环境、实现人机交互等能力的机器人&#xff0c;它可以被应用于不同的场景&#xff0c;如餐饮、医疗、物流等行业。根据其功能和应用场景的不同&#xff0c;服务机器人可以分为以下几类&#xff1a;1. 餐饮服务机器人 随着社会发展和人们需…

Jmeter阶梯式加压测试

熟悉阿里云性能测试PTS的都可以看到压测配置设置如下图&#xff0c;相比Jmeter简单的线程设置&#xff0c;要合理更直观。 但是我们会去研究&#xff0c;性能测试中&#xff0c;有时需要模拟一种实际生产中经常出现的情况&#xff0c; 即&#xff1a;从某个值开始不断增加压力…

IC秋招| 秋招怎么做准备,这份攻略请收下!

近期大家关注的就是秋招了&#xff0c;如今一些企业已经开启了提前批招聘&#xff0c;不少同学已经投递了简历&#xff0c;但内心还是非常焦虑&#xff0c;那么今年的秋招到底该如何准备呢&#xff1f; 简历投递思路建议 刚开始对大厂没有把握的话&#xff0c;可以先约初创或…

redis安装,开启自启动(Windows)

1、下载redis包 Releases tporadowski/redis GitHub 2、配置环境变量 path中添加redis解压后的路径&#xff1b; 3、配置文件修改 注释掉 bind 127.0.0.1 使其他ip可以远程访问&#xff1b; 修改redis密码 4、启动Redis服务 redis-server.exe --service-install redis.w…

百度地图点标记加调用

先看效果 PHP代码 <?phpnamespace kds_addons\edata\controller;use think\addons\Controller; use think\Db;class Maps extends Controller {// 经纬度计算面积function calculate_area($points){$totalArea 0;$numPoints count($points);if ($numPoints > 2) {f…

React组件进阶之children属性,props校验与默认值以及静态属性static

React组件进阶之children属性,props校验与默认值以及静态属性static 一、children属性二、props校验2.1 props说明2.2 prop-types的安装2.3 props校验规则2.4 props默认值 三、静态属性static 一、children属性 children 属性&#xff1a;表示该组件的子节点&#xff0c;只要组…

Java集合详解

Java集合详解 一、基本概要1.什么是集合2.常见的集合有哪些 二、基本知识1.集合框架底层数据结构1.1 Collection1.2 Map 2.线程安全的集合 三、集合具体讲解0.前沿知识0. ❤关于Iterator 迭代器1.Iterator迭代器是什么&#xff1f;用来干什么&#xff1f;&#xff08;用来遍历集…

Node.js之express框架学习心得

Node.js&#xff1a;颠覆传统的服务器端开发 Node.js是基于Chrome V8引擎构建的JavaScript运行时&#xff0c;它采用了完全不同的开发模型。Node.js使用事件驱动和非阻塞I/O的方式处理请求&#xff0c;通过单线程和异步机制&#xff0c;实现高效的并发处理。这意味着在Node.js中…

AdvancedInstaller打包程序

文章目录 1. AdvancedInstaller 下载2. AdvancedInstaller 启动3. 新建工程4. 配置安装包详细信息5. 配置安装参数6. 添加要打包的文件7. 设置安装完成后启动程序8. 构建打包 1. AdvancedInstaller 下载 下载网址&#xff1a;https://www.advancedinstaller.com/ 2. AdvancedIn…

error: #5: cannot open source input file “core_cmInstr.h“

GD32F103VET6和STM32F103VET6引脚兼容。 GD32F103VET6工程模板需要包含头文件&#xff1a;core_cmInstr.h和core_cmFunc.h&#xff0c;这个和STM32F103还是有区别的&#xff0c;否则会报错&#xff0c;如下&#xff1a; error: #5: cannot open source input file "core…

Springboot之把外部依赖包纳入Spring容器管理的两种方式

前言 在Spring boot项目中&#xff0c;凡是标记有Component、Controller、Service、Configuration、Bean等注解的类&#xff0c;Spring boot都会在容器启动的时候&#xff0c;自动创建bean并纳入到Spring容器中进行管理&#xff0c;这样就可以使用Autowired等注解&#xff0c;…