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

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.lryc.cn/news/394974.html

相关文章:

  • 【大模型】多模型在大模型中的调度艺术:解锁效率与协同的新境界
  • LeetCode 704, 290, 200
  • 如何利用Java进行大数据处理?
  • 【论文通读】GUICourse: From General Vision Language Model to Versatile GUI Agent
  • 王道考研数据机构:中缀表达式转为后缀表达式
  • PL/SQL安装+汉化教程
  • Qt | Qt 线程相关类概述和举例
  • Linux 复现Docker NAT网络
  • HBuilder X 小白日记03-用css制作简单的交互动画
  • 【深度学习练习】心脏病预测
  • 创建react的脚手架
  • 用例导图CMind
  • C++ 仿函数
  • Redhat 安装 docker 网络连接超时问题
  • Java面试题:undo log和redo log
  • 【Scrapy】Scrapy 中间件等级设置规则
  • SDK环境的安装(测试使用)
  • 【matlab】【python】爬虫实战
  • Android TV跨平台开发心得
  • View->裁剪框View的绘制,手势处理
  • 语言模型的进化:从NLP到LLM的跨越之旅
  • 应急响应--网站(web)入侵篡改指南
  • vue3+vue-router+vite 实现动态路由
  • Okhttp hostnameVerifier详解
  • TCP的p2p网络模式
  • 力扣-贪心算法4
  • 动手学深度学习6.2 图像卷积-笔记练习(PyTorch)
  • 展开说说:Android服务之bindService解析
  • node-sass 老版本4.14.0 安装失败解决办法
  • 最近很火的字幕截图生成器