目录
一、⾃动化测试理论
二、自动化脚本
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
⑥使用jmeter连接数据库,执行sql语句
性能测试04|JMeter:连接数据库、逻辑控制器、定时器-CSDN博客
首先,添加数据库连接池并配置。
jdbc:mysql://121.43.169.97/czbk_member?allowMultiQueries=true
allowMultiQueries=true:开启批量执⾏sql语句。(因为默认只执行一条sql语句)
然后,添加一个setup线程组,命名为“清除测试数据”,在该线程组下添加 jdbc请求执⾏sql语句。
注意:
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", "")
- 发送邮件