金融项目实战 04|JMeter实现自动化脚本接口测试及持续集成

目录

一、⾃动化测试理论

二、自动化脚本

1、添加断言

1️⃣注册、登录

2️⃣认证、充值、开户、投资

2、可重复执行:清除测试数据+脚本按指定顺序执行

1️⃣如何可以做到可重复执⾏?

2️⃣清除测试数据:连接数据库+setup线程组

①明确清除那些数据?

②这些数据在那个库、那个表?

③分析sql语句

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

⑤删除sql

⑥使用jmeter连接数据库,执行sql语句

⑦脚本按指定顺序执行

三、持续集成

1、持续集成理论

2、脚本管理:脚本上传到gitee

1️⃣方式一:pycharm

2️⃣方式二:命令行

3、配置


一、⾃动化测试理论

🔴什么是⾃动化测试?

  • 让程序或⼯具代替⼈为执⾏测试⽤例

🔴什么样的项⽬适合做⾃动化?

  • 1、项⽬周期⻓ --多⻓算⻓?(⾃⼰公司运营项⽬)
  • 2、需求稳定(更多指具体功能/模块)
  • 3、需要回归测试(电商、⾦融、部队、对外运营的项⽬)

🔴⾃动化测试⽤例覆盖率?

  • 上限:全部的功能⽤例执⾏⾃动化。-- 基本不可能。
    • 1、有些⽤例能去做,⽽不去做(配置功能,不常⽤)
    • 2、有些⽤例都不能做⾃动化(如:图⽚上的⽂字)
  • 公司:
    • 1、如果⾃动化⽤例只覆盖业务线,覆盖率10~20%
    • 2、好点的公司,⾃动化覆盖40%~60%

🔴 ⾃动化测试与功能测试区别--脚本执⾏层⾯?

  • 1、⾃动化脚本可重复执⾏
  • 2、功能脚本是靠⼈眼睛进⾏断⾔,⾃动化是靠⼯具或程序进⾏断⾔。

🔴⾃动化测试归属什么测试?

  • 归属:功能测试(原因:⾃动化测试使⽤的⽤例都是功能的⽤例)

🔴⾃动化测试实现⽅式?

  • 1、⼯具
  • 2、代码

🔴⾃动化测试分类

  • ui⾃动化(web、app、win32)
  • 接⼝⾃动化

二、自动化脚本

如何设置⾃动化脚本?

  • 1、使⽤程序或⼯具断⾔
  • 2、可重复运⾏

1、添加断言

只用到了断言中 响应断言 和响应代码两个功能,对响应体和响应代码进行断言。

1️⃣注册、登录

注册接口
登录接口,这里开发返回错别字,这里为了断言通过,只判断了部分字 提示:

1、图⽚验证码使⽤响应断⾔→断⾔状态码

2、其他全部使⽤响应断⾔判断响应体的描述信息,因为JSON断言会对结果的判断过于标准,健壮性差。

3、依赖接⼝不⽤断⾔,只需断⾔被测接⼝。(如:注册接口依赖图⽚验证码、短信验证码,只需要断⾔注册即可。)

2️⃣认证、充值、开户、投资

提示:

1、断⾔内容来源预期结果,预期结果⼀般情况与实际结果⼀致。⽂字偏差看⼤概意思是否⼀样,如果不 ⼀样,那就是缺陷。

2、看实际结果是否有明确提示错误原因和引导信息。如果有就通过,否则就是失败。

2、可重复执行:清除测试数据+脚本按指定顺序执行

1️⃣如何可以做到可重复执⾏?
  • 1、清除测试数据(已注册数据、造借款数据(因为投资业务执行需要已经有借款的信息))
  • 2、脚本按指定顺序执⾏
2️⃣清除测试数据:连接数据库+setup线程组
①明确清除那些数据?

1、删除已注册的⼿机号(因此注册过的手机再跑注册接口会报错)

2、造数据(因为投资业务依赖已经存在借款标)

提示:在⼯作中找开发确认涉及那些表。

②这些数据在那个库、那个表?

库:czbk_member

表:

mb_member(会员主表)

mb_member_info(会员信息表)

mb_member_login_log(会员登录⽇志)

mb_member_register_log(会员注册⽇志)

提示:以上表找开发获取。

③分析sql语句

1、mb_member、mb_member_register_log直接使⽤phone字段进⾏过滤删除

2、mb_member_info、mb_member_login_log必须配合mb_member表的id进⾏关联查询,再删除。

【总结】删除手机号,不仅要删除有phone字段的信息,还要删除其他有主键外键关联的表信息

④查询sql(确认sql语句是否正确)
⑤删除sql

delete没有直接后面跟from的原因:联合查询时要删除记录,需要指明要删除那张表的记录

⑥使用jmeter连接数据库,执行sql语句

性能测试04|JMeter:连接数据库、逻辑控制器、定时器-CSDN博客

首先,添加数据库连接池并配置。

jdbc:mysql://121.43.169.97/czbk_member?allowMultiQueries=true

allowMultiQueries=true:开启批量执⾏sql语句。(因为默认只执行一条sql语句)

然后,添加一个setup线程组,命名为"清除测试数据",在该线程组下添加 jdbc请求执⾏sql语句。
删除已注册的手机号 构造借款数据;
具体sql语句看: 金融项目实战 03|JMeter脚本实现手工接口测试-CSDN博客中二、4 注意:

1、因为要添加多条sql语句,所以每个sql语句结尾需要使⽤分号。如果一条则加不加分号都无所谓。

2、Query Type:选择Callable Statement

⑦脚本按指定顺序执行

【总结】到此,实现了批量运行该测试计划,无需为测试数据的一次性特性而每次改数据。

三、持续集成

1、持续集成理论

🔴什么持续集成?

  • 通过⼀款⼯具(jenkins)持续⾃动集成代码。

🔴持续集成(CI)⼯具最常⽤啥?

  • Jenkins

🔴通过jenkins⼯具运⾏脚本的本质什么?

  • 运⾏脚本的命令
  • jmeter -n -t 脚本.jmx -l 结果.txt -e -o ⽬录

🔴持续集成所依赖的环境是什么?

  • 1、jenkins环境:jdk、jenkin.war
  • 2、运⾏脚本本环境:newman 、jmeter、jkd、python、pytest,具体用哪个环境,要看写脚本用的什么工具或语言。

🔴持续集成运⾏脚本的⽅式有哪些?--脚本在哪⾥放?

  • 1、项⽬托管平台(github、gitee、gitlabe)
  • 2、jenkins服务器(将脚本从托管平台下载到jenkins服务器本地,调⽤命令去执⾏)

2、脚本管理:脚本上传到gitee

1️⃣方式一:pycharm
  • 通过pycharm⼯具以可视化方式将脚本上传托管平台gitee

首先新建空项目,把脚本文件.jmx上传到该项目中。

然后把该项目上传到gitee中。

(实现此步骤需要先配置好账号,可查询其他博客看详细步骤)

2️⃣方式二:命令行
  • 通过命令将jmeter脚本上传到gitee仓库

(建议看其他人写的详细博客)

3、配置

  • 执⾏脚本

配置:

1、源码管理(将脚本下载到jenkins服务器)

2、构建(在jenkins本地服务器执⾏脚本的命令)

①执⾏删除报告⽬录和结果⽬录命令 mac/linux:rm -rf re* windows: del result.txt rmdir /Q/S report

②x:/xx/apache-jmeter-5.1.1/bin/jmeter.bat -n -t 02-auto_script.jmx -l resut.txt -e -o report

  • 测试报告

报告⽆内容或⽆样式:

jenkins管理->执⾏命令

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

  • 发送邮件
相关推荐
2401_8914092619 分钟前
Level2逐笔成交逐笔委托毫秒记录:今日分享优质股票数据20250102
大数据·数据库·python·金融·数据库开发
十二测试录1 小时前
Android SDK下载安装(图文详解)
android·经验分享·python·程序人生·adb·自动化
Feng.Lee4 小时前
性能测试工具Jmeter中的FTP脚本开发
测试工具·jmeter
Feng.Lee4 小时前
性能测试工具Jmeter元件运行顺序
测试工具·jmeter·可用性测试
新加坡内哥谈技术5 小时前
CES 2025 NVIDIA Project DIGITS 与更多突破性发布全解析
人工智能·科技·深度学习·自动化·生活
加点油。。。。5 小时前
DSP+Simulink——点亮LED灯(TMSDSP28379D)超详细
matlab·自动化·c·dsp开发·simulink·dsp
zuozewei7 小时前
性能工具之 JMeter ActiveMQ 脚本开发实践
jmeter·activemq
艾思科蓝 AiScholar7 小时前
【南京工业大学主办 | JPCS独立出版 | 高届数、会议历史好 | 投稿领域广泛】第八届智能制造与自动化国际学术会议(IMA 2025)
大数据·运维·人工智能·机器人·自动化·云计算·制造
lsrsyx7 小时前
践行“金融为民” 平安养老险迎来理赔新篇章
大数据·人工智能·金融