Jmeter实现接口自动化

自动化测试理论知识

  • 什么是自动化测试?
让程序或工具代替人为执行测试用例
  • 什么样的项目适合做自动化?
1、项目周期长 --多长算长?(自己公司运营项目)
2、需求稳定(更多具体功能/模块)
3、需要回归测试(电商、金融、部队、对外运营的项目)
  • 自动化测试用例覆盖率?
上限:全部的功能用例执行自动化。--基本不可能。
1、有些用例能去做,而不去做(配置功能,不常用)
2、有些用例都不能做自动化(如:图片上的文字)
公司:
1、如果自动化用例只覆盖业务线,覆盖率10~20%
2、好点的公司,自动化覆盖40%~60%
  • 自动化测试与功能测试的区别?–脚本执行层面
1、自动化脚本可重复执行
2、功能脚本是靠人眼睛进行断言,自动化是靠工具或程序进行断言。
  • 自动化测试归属什么测试?
归属:功能测试(原因:自动化测试使用的用例都是功能的用例)
  • 自动化测试实现方式?
1、工具
2、代码
  • 自动化测试分类
1、ui自动化(web、app、win32)
2、接口自动化

自动化脚本

  • 如何设置自动化脚本
1、使用程序或工具断言
2、可重复运行

添加断言

  • 注册、登录

image-20240629154951244

提示:
   1、图片验证码使用响应断言->断言状态码
   2、其他全部使用响应断言
   3、依赖接口不用断言,只需断言被测接口。(如:注册依赖图片验证码、短信验证码,只需要断言注册即可)
  • 认证、充值、开户、投资

image-20240629155305067

提示:
1、断言内容来源预期结果,预期结果一般情况与实际结果一致。文字偏差大概看意思是否一样,
   如果不一样,那就是缺陷。
2、看实际结果是否有明确提示错误原因和引导信息。如果有就通过,否则就失败。

可重复执行

  • 如何可以做到可重复执行?
1、清除测试数据(已注册数据、造借款数据)
2、脚本按指定顺序执行
  • 清除测试数据

    • 明确清除哪些数据?
    1、删除已注册的手机号
    2、造数据(借款标)
    
    • 这些数据在哪个库、哪个表?
    库:czbk_member
    表:
    mb_member(会员主表)
    mb_member_info(信息表)
    mb_member_login_log(登录日志)
    mb_member_register_log(注册日志) 
    
    • 确定sql语句

    分析

    image-20240629161632910

    1、mb_member、mb_member_register_log直接使用phone字段进行过滤删除
    2、mb_member_info、mb_member_login_log必须配合mb_member表的id进行关联查询,在删除。
    

    查询sql(确认sql语句是否正确)

-- 一、确认表中是否有数据
# 1、查询确认语句 mb_member
select * from mb_member where phone in
("13600001111","13600001112","13600001113","13600001114")
# 2、mb_member_info
select * from mb_member_info i INNER JOIN mb_member m on i.member_id=m.id
where m.phone in
("13600001111","13600001112","13600001113","13600001114")
# 3、mb_member_login_log
select * from mb_member_login_log l INNER JOIN mb_member m on
l.member_id=m.id where m.phone in
("13600001111","13600001112","13600001113","13600001114")
# 4、mb_member_register_log
select * from mb_member_register_log where phone in
("13600001111","13600001112","13600001113","13600001114")

删除sql

-- 二、删除sql语句
# 1、删除 mb_member_info
delete i.* from mb_member_info i INNER JOIN mb_member m on
i.member_id=m.id where m.phone in
("13600001111","13600001112","13600001113","13600001114")
# 2、删除 mb_member_login_log
delete l.* from mb_member_login_log l INNER JOIN mb_member m on
l.member_id=m.id where m.phone in
("13600001111","13600001112","13600001113","13600001114")
# 3、删除 mb_member_register_log
delete from mb_member_register_log where phone in
("13600001111","13600001112","13600001113","13600001114")
# 4、删除 mb_member
delete from mb_member where phone in
("13600001111","13600001112","13600001113","13600001114")
-- 二、删除sql语句
# 1、删除 mb_member_info
delete i.* from mb_member_info i INNER JOIN mb_member m on
i.member_id=m.id where m.phone in
("${phone1}","${phone2}","${phone3}","${phone4}")
# 2、删除 mb_member_login_log
delete l.* from mb_member_login_log l INNER JOIN mb_member m on
l.member_id=m.id where m.phone in
("${phone1}","${phone2}","${phone3}","${phone4}")
# 3、删除 mb_member_register_log
delete from mb_member_register_log where phone in
("${phone1}","${phone2}","${phone3}","${phone4}")
# 4、删除 mb_member
delete from mb_member where phone in
("${phone1}","${phone2}","${phone3}","${phone4}")
  • 使用jmeter连接数据库、执行sql语句。
    • 添加数据库连接池并配置

image-20240629162940848

jdbc:mysql://121.43.169.97/czbk_member?allowMultiQueries=true
allowMultiQueries=true :开启批量执行sql语句
  • 添加jdbc请求执行sql语句

image-20240629163912799

注意:
1、每个sql语句结尾需要使用;
2、Query Type:选中Callable Statement
  • 脚本按指定顺序执行

image-20240629164254742

持续集成

持续集成理论

  • 什么是持续集成?

image-20240629165409292

通过一款工具(Jenkins)持续自动集成代码
  • CI工具最常用啥?
Jenkins
  • 通过Jenkins工具运行脚本的本质是啥?
运行脚本的命令
jmeter -n -t 脚本.jmx -l 结果.txt -e -o 目录
  • 持续集成所依赖的环境是啥?
1、jenkins环境:jdk jenkins.war
2、运行脚本的环境:newman、jmeter、jdk、python、pytest
  • 持续集成运行脚本的方式有哪些?–脚本在哪里放?
1、项目托管平台(github、gitree、gitlabe)
2、Jenkins服务器(将脚本从托管平台下载到jenkins服务器本地,调用命令去执行)

脚本管理

  • 通过工具上传托管平台

image-20240629195544722

  • 通过命令上传

image-20240629195824949

创建git仓库:

image-20240629195914903

配置

  • 执行脚本
配置:
1、源码管理(将脚本下载到jenkins服务器)
2、构建(在jenkins本地服务器执行脚本的命令)
1、执行删除报告目录和结果目录命令
mac/linux:rm -rf re*
windows: del result.txt rmdir /Q/S report
2、x:/xx/apache-jmeter-5.1.1/bin/jmeter.bat -n -t 02-auto_script.jmx -l
resut.txt -e -o report
  • 测试报告

image-20240629201436484

报告无内容或无样式:
jenkins 管理->执行命令
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
  • 发送邮件

image-20240629201702621

image-20240629201717327

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[数据结构] 归并排序快速排序 及非递归实现

()标题:[数据结构] 归并排序&&快速排序 及非递归实现 水墨不写bug (图片来源于网络) 目录 (一)快速排序 类比递归谋划非递归 快速排序的非递归实现: (二)归并排序 归…

通过scp命令进行本地和远程服务器之间的文件传输

打开本地终端(Windonws系统按下WinR键,输入cmd回车,即可打开终端) 1、从本地向远程服务器传输文件 scp 本地文件路径文件名 用户名远程服务器IP地址:远程服务器存放文件的路径 例如: scp /Users/HP/Desktop/test/1.p…

【flutter问题记录】 无效的源发行版:17

问题描述 在看开源项目的时候,clone下来后一直编译失败,提示:无效的源发行版:17,看描述大概是jdk的版本问题,但是在Android studio各种指定都无用,网上资料也没有flutter项目的解决方案,最后在…

数据库(表)

要求如下: 一:数据库 1,登录数据库 mysql -uroot -p123123 2,创建数据库zoo create database zoo; Query OK, 1 row affected (0.01 sec) 3,修改字符集 mysql> use zoo;---先进入数据库zoo Database changed …

集成测试技术栈

前端 浏览器操作:playwright、selenium 后端 testcontainercucumbervitestcypressmsw

HTTP模块(一)

HTTP服务 本小节主要讲解HTTP服务如何创建服务,查看HTTP请求&响应报文,还有注意事项说明,另外讲解本地环境&Node环境&浏览器之间的链路图示,如何提取HTTP报文字符串,及报错信息查询。 创建HTTP服务端 c…

基于java+springboot+vue实现的仓库管理系统(文末源码+lw+ppt)23-499

第1章 绪论 伴随着信息社会的飞速发展,仓库管理所面临的问题也一个接一个的出现,所以现在最该解决的问题就是信息的实时查询和访问需求的问题,以及如何利用快捷便利的方式让访问者在广大信息系统中进行查询、分享、储存和管理。这对我们的现…

Mysql explain语句详解与实例展示

首先简单介绍sql: SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。 1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句…

【持续集成_03课_Jenkins生成Allure报告及Sonar静态扫描】

1、 一、构建之后的配置 1、安装allure插件 安装好之后,可以在这里搜到已经安装的 2、配置allure的allure-commandline 正常配置,是要么在工具里配置,要么在系统里配置 allure-commandline是在工具里进行配置 两种方式进行配置 1&#xff…

Ubuntu编译 OSG

目录 一、安装步骤 二、配置 1、数据文件配置 2、OSG环境变量配置 一、安装步骤 在Ubuntu上安装OSG(OpenSceneGraph),你可以按照以下步骤操作: 打开终端,更新你的包管理器的包列表: sudo apt update 安装必要的依赖库 sudo apt install libglu1-mesa-dev freeglu…

powershell美化工具Oh My Posh安装教程

1. 安装Oh My Posh 进入Oh My Posh官网,可根据不同平台进行下载 windows下可以直接在微软商店下载 2. 安装Nerd Fonts字体 进入Nerd Fonts官网,选择自己喜欢的字体下载解压后,全选所有文件,右键选择安装即可(忽略LICEN…

搭建NEMU与QEMU的DiffTest环境(动态库方式)

搭建NEMU与QEMU的DiffTest环境(动态库方式) 1 DiffTest原理简述2 编译NEMU3 编译qemu-dl-difftest3.1 修改NEMU/scripts/isa.mk3.2 修改NEMU/tools/qemu-dl-diff/src/diff-test.c3.3 修改NEMU/scripts/build.mk3.4 让qemu-dl-difftest带调试信息3.5 编译…

在Docker部署DVWA

Docker的安装 apt install docker.io 查看安装是否成功: docker -v 弹出版本信息即安装成功!!! 配置镜像加速器 登录:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 下面可以看到下面界面&…

机器学习训练之使用静态图加速

前言 MindSpore有两种运行模式:动态图模式和静态图模式。默认情况下是动态图模式,也可以手工切换为静态图模式。 动态图模式 动态图的特点是计算图的构建和计算同时发生,符合Python的解释执行方式。在调试模型时较为方便,能够实…

代码随想录 数组部分+代码可在本地编译器运行

代码随想录 数组部分,代码可在本地编译器运行 文章目录 数组理论基础704.二分查找题目:思路二分法第一种写法二分法第二种写法 代码 27.移除元素题目:思路-双指针法代码 977.有序数组的平方题目思路-双指针代码 209.长度最小的子数组题目&am…

CDNOW_master.txt数据分析实战

一、数据详情 该数据集是常见的销售数据集,数据展示的是美国1997后的商品销售数据。包含四个字段,分别是用户id,购买时间,销售量,与销售金额。 二、数据读取与数据清洗 导入必要的包 \s代表的许多空格作为分割,names重…

区间最值问题-RQM(ST表,线段树)

1.ST表求解 ST表的实质其实是动态规划&#xff0c;下面是区间最小的递归公式&#xff0c;最大只需将min改成max即可 f[i][j] min(f[i][j - 1], f[i (1 << j - 1)][j - 1]); 二维数组的f[i][j]表示从i开始连续2*j个数的最小/大值。 例如&#xff1a;我们给出一个数组…

【论文解读】可灵(快手)|LivePortrait:具有拼接和重定向控制的高效肖像动画

&#x1f4dc; 文献卡 英文题目: LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control;作者: Jianzhu Guo; Dingyun Zhang; Xiaoqiang Liu; Zhizhou Zhong; Yuan Zhang; Pengfei Wan; Di ZhangDOI: 10.48550/arXiv.2407.03168摘要翻译: *旨在…

ESP32CAM物联网教学02

ESP32CAM物联网教学02 物联网门锁 小智来到姑姑家门口&#xff0c;按了门铃&#xff1b;还在公司上班的姑姑用电脑给小智开了门&#xff0c;让他先进屋休息。小智对物联网门锁产生了兴趣&#xff1a;什么是物联网&#xff1f;为什么这么厉害&#xff1f; 初识物联网 我们在百…

【论文阅读笔记】Meta 3D AssetGen

【论文阅读笔记】Meta 3D AssetGen: Text-to-Mesh Generation with High-Quality Geometry, Texture, and PBR Materials Info摘要引言创新点 相关工作T23D基于图片的3d 重建使用 PBR 材料的 3D 建模。 方法文本到图像:从文本中生成阴影和反照率图像Image-to-3D:基于pbr的大型重…