当前位置:网站首页>postman+jmeter接口实例
postman+jmeter接口实例
2022-08-10 22:50:00 【测试小鬼】
一、接口基础
1、为什么要单独测试接口?
1. 程序是分开开发的,前端还没有开发,后端已经开发完了,可以提前进入测试
2. 接口直接返回的数据------越底层发现bug,修复成本是越低的
3. 接口测试能模拟功能测试不能测到的异常情况,例如修改订单金额
2、get请求和post请求
两者的区别:
get请求向服务端获取数据的 ,post请求向服务端发送数据
get传参写在url或cookie中 ,post将数据放在body中
get请求没有请求体,只有请求头,post有请求头和请求体
get有长度限制(x)现在没有限制了
post请求更安全(x)抓包都能抓到,都不安全
3、http状态码
2xx 请求成功 常见的200
3xx 重定向
4xx 客户端发送的请求语法错误
5xx 服务端问题
4、cookie和session
cookie 存在用户本地的一个键值对 key-value
seesion 存在服务端的一个键值对
cookie和seesion 同一个值比对,比对相等允许操作
二、postman接口实例
1.get类型
可以直接在浏览器中进行测试,?后写参数,&拼参数
2.post类型
请求选择post,添加参数即可
3.入参是jason类型
选择Body-raw-JSON(application/json),直接将jason串复制进来
4.请求头加cookie
在Headers中添加cookie的key和value
5.请求头加refer
6.上传文件
body-form-data-File-选择文件即可
三、 jmeter基础
1.添加http请求
sep1测试计划-添加-Threads-线程组
sep2 线程组-添加-Sample-http请求
sep3 添加域名、端口号、协议、请求方法、路径、编码格式、参数
参数为文件 Files Upload --添加--文件名称:文件的绝对路径,或直接把文件放在jmeter的bin路径下,直接添加文件名,参数名称:参数名
sep4添加断言(相当于LR中的检查点) 请求-添加-断言-响应断言---断言内容请求response中的值
sep5 添加监听查看请求结果 线程组、请求-添加-监听器-察看结果树
sep6 根据需要添加配置原件(例如cookie或http信息头)
2.参数化、关联
参数化-----服务器或程序校验输入值的唯一性需要参数化,例如新加用户,手机后不能重复添加
方法一:添加-配置元件-CSV Data Set Config
参数化文件首行不用写参数名,引用参数时 -----${参数名}
方法二:使用函数助手
选项---函数助手 常用的time取到秒级可以用做唯一性的参数的取值,random生成一个取值范围,任意取其中的一个值
方法三:配置原件-----用户定义的变量,一 一写出来
关联----服务器返回动态码,为了通过服务器的验证,使用关联,例如,添加金币,需要服务器返回动态的记录用户登录状态的sign串
方法一:正则表达式
添加-后置处理器-正则表达式提取器
正则表达式,需要看从哪个请求返回,就去那个请求的返回集中找,找到后复制该动态值以及左右边界,动态值替换为正则表达式即可
方法二 jason path(需要安装插件)$.login_info.sign 代表返回jason串中,取真个jason下面的login_info节点下面的sign的值
3.jmeter操作数据库
sep1测试计划加载java连接mysql的jar包
sep2 添加JDBC Connection Configuration 线程组-添加-配置元件-JDBC Connection Configuration
Variable Name 可以任意添写
database url:jdbc:mysql://ip:端口号/库名?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true 注:characterEncoding=UTF-8保证新增修改数据库中文不乱码,allowMultiQueries=true 允许同一个请求同时写增删改查操作
JDBC driver Class:com.mysql.jdbc.Driver 固定写法
username:数据路用户名 Password 数据库密码
sep3 添加 jdbc request 线程组-添加-Sample-JDBC Request
Variable Name 一定要和JDBC Connection Configuration中Variable Name已知,否则报错
Query Type 选Callables Statement 可以同时写增删改查
4.jmeter解决乱码
在jmeter.properties 这个文件里面
找到sampleresult.default.encoding=xx
后面xx改成utf-8,然后取消注释
解决jmeterbody里面中文显示不出来
找到 JSyntaxTextArea
然后把注释取消就行了,以js开头的
解决请求参数中午乱码 请求页面
content encoding 填写utf-8
解决数据库操作中文乱码
database url后添加characterEncoding=UTF-8
最后在我的QQ技术交流群里整理了我这10几年软件测试生涯整理的一些技术资料,包括:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题,群里也会有大神帮忙解答,群号 798478386 ( 备注 csdn条555 )
全套软件测试自动化测试教学视频
300G教程资料下载【视频教程+PPT+项目源码】
全套软件测试自动化测试大厂面经
边栏推荐
猜你喜欢
随机推荐
瑞幸咖啡第二季营收33亿:门店达7195家 更换CFO
MySQL: MySQL Cluster - Principle and Configuration of Master-Slave Replication
【Linux】宝塔面板设置MySQL慢查询日志,未走索引日志
怼不过产品经理?因为你不懂DDD领域建模与架构设计
实例053:按位异或
This visual tool artifact is more intuitive and easy to use!love so much
HGAME 2022 Week1 writeup
Glide监听Activity生命周期源码分析
Apache Doris支持的数据类型详解
Spark基础【RDD转换算子】
OneNote tutorial, how to organize notebooks in OneNote?
CFdiv2-Beautiful Mirrors-(期望)
Btree索引和Hash索引
高精度减法
Configuring vim(7) from scratch - autocommands
Ndk 和Cmake报错解决
实例051:按位与
还在用 Xshell?你 out 了,推荐一个更现代的终端连接工具,好用到爆!
vr工业操作培训模拟系统可以应用到哪些场景中
STL-deque