当前位置: 首页 > news >正文

接口/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.lryc.cn/news/104943.html

相关文章:

  • Linux怎么从网络上下载文件
  • Flutter携带JSON参数post请求
  • 【vue】vue-image-lazy图片懒加载使用与介绍【超详细+npm包源代码】
  • MFC第二十四天 使用GDI对象画笔和画刷来开发控件(分页控件选择态的算法分析、使用CToolTipCtrl开发动静态提示)
  • 【NLP-新工具】语音转文本与OpenAI的用途
  • try-catch-finally的字节码原理
  • 基于双层优化的微电网系统规划设计方法(Matlab代码实现)
  • 【Nginx13】Nginx学习:HTTP核心模块(十)Types、AIO及其它配置
  • 2023年华数杯数学建模C题思路分析
  • 安卓手机变身Linux服务器
  • 【Ansible】Ansible自动化运维工具之playbook剧本
  • Yolov8目标检测
  • Jmeter用于接口测试中,关联如何实现
  • 线程状态
  • HTML一些基础知识
  • git 命令总结
  • 【Django】如何优化数据库访问
  • 常压室温超导材料:揭开物理学的新篇章
  • 【《C# 10 和 .NET 6入门与跨平台开发(第6版)》——一本循序渐进的C#指南】
  • 2.5 BUMP图改进
  • 第六篇-ChatGLM2-6B-CentOS7安装部署-GPU版
  • dotnet 依赖注入-批量注入Controller,service,Dao
  • 【Spring】Spring对IoC的实现
  • 正则表达式中的大括号-花括号{}有什么用?
  • Flutter 状态栏完美攻略
  • Packet Tracer - 连接有线和无线 LAN
  • 02 笔记本电脑m.2硬盘更换
  • 2.04 商品搜索功能实现
  • 【SEO基础】百度权重是什么意思及网站关键词应该怎么选?
  • Unity实现在3D模型标记