响应模型和场景设置 可以再深入学习一下:
如何在jmeter中使用json格式的入参:
GET请求:向特定的资源发出请求。 注意:GET方法不应当被用于产生”副作用“的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。
get请求:
url:http://127.0.0.1:8080?username=zhangsan&password=123
post请求:
url:http://127.0.0.1:8080
请求体:
{
[
"userName":"zhangsan",
"passWord":"123"
]
}
POST请求:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改
总结:get请求访问更快,常用于数据的读取;post请求访问更安全,常用于新的资源的建立和已有资源的修改,使用场景如提交表单或上传文件;
注意:
1)方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方式时,当返回状态码501(Not Implemented)。
2)HTTP服务器至少应该实现GET和HEAD/POST方法,其他方法都是可选的
http请求响应模型(一次请求的生命周期或简单的软件分层)
一. 登录场景:
1. 客户端发起请求到API接口层
1.1用户在客户端填写用户名和密码,点击登录,发送请求
2. API接受到客户端发起的用户请求
2.1API对业务逻辑进行验证
2.1.1验证用户名和密码是否合法
比如:用户名要求必须为真实手机号码(11位,1开头,第二位34)
如果验证失败,即用户名不合法,那么需要给客户端发送响应码
比如码值为1,2,3
1代表用户名格式错误
2代表用户名或密码错误
3代表密码格式错误
3. api会将用户输入的数据发给db层
3.1数据库查询成功则返回1,失败返回0
4. DB会将返回的查询数据库的条目数给api
5. api返回成功或失败的状态码发给客户端
6. 客户端将返回的信息提示给用户
二. 做软件测试可以把软件分层进行测试:
客户端:功能测试,性能测试,自动化测试
接口层:主要控制业务逻辑层。接口测试,功能测试,性能测试,自动化测试(接口层的自动化测试更好维护脚本,因为不涉及页面元素的改变)
数据库层:可以将开放人员使用到的sql语句单独拿出来进行性能测试
Http是一个应用层协议,由请求和响应构成,是一个标准的客户端服务模型。Http协议永远都是客户端发起请求,服务端回送响应。
Http协议通常承载于TCP协议之上,Https承载于SSL(安全套接层协议)/TLS(传输层安全协议)之上,这个时候我们通常说的加密连接了。
http使用80端口,https使用443端口。http是明文传输,而https为了保障数据传输的安全性,通过SSL证书实现加密传输。
不用角色眼中的接口:
1. 开发人员眼中的接口:模块与模块之间的对接方式
创建一个接口类Person:
public interface Person{
#人可以有哪些行为, 定义3种方法,不去具体怎样实现
public void run();
public void eat();
public void tal();
}
#创建一个接口实现类Man,必须实现这个接口里的所有方法。
public class Man implements Person{
public void run(){
}
public void eat(){
}
public void talk(){
}
}
public class women implements Person{
public void run(){
}
public void eat(){
}
public void talk(){
}
}
2. 测试人员眼中的接口:可以独立部署成服务的协议接口
不同角色眼中的接口:主要针对测试人员和开发人员
常见的接口协议:http接口
http协议栈中的位置:http协议的底层原理
http协议响应码:接口测试中的响应码代表的意思
http协议响应模型:一次请求的生命周期,从哪发起到哪结束的整个闭环流程
常用的http协议的请求方式:get, post等
jmeter的功能介绍
实战内容-get请求与post请求两种请求方式
HTTP协议响应码
课程内容介绍
3、成功后,api会将用户输入的数据发给DB层
此时,数据库会做增、删、改、查等操作。
http协议请求响应模型
场景:登录
1、客户端发起请求到api接口层
1.1用户在客户端填写用户名和密码,点击登录,发送请求
2、api接收到客户端发起的请求
2.1 api对业务逻辑进行验证
2.1.1 验证用户名和密码是否合法
比如:用户名要求必须为真实的手机
如果验证失败,即用户名不合法,那么需要给客户端返回响应码(这个响应码是自定义的)
5开头:
服务端错误,服务器不能正确执行一个正确的请求
4开头:
客户端错误,客户请求包含语法错误或者是不能正确执行。
1开头的http协议响应码:
信息响应类,表示接收到请求并且继续处理
2开头表示:
处理成功响应类,表示动作被成功接收、理解和接受
3开头表示:
重定向响应类,为了完成指定的动作,必须接受进一步处理。
HTTP协议、HTTPS协议,需要课下找:印象笔记里之前写的。
参数化
1.函数助手-选择一个功能 __CSVRead
2.
CSV file to get values form | *alias 文件路径
CSV文件列号| next| *alias 默认填写0
参数化生成的字符串,复制出来,填到路径内(get请求)
登录响应模型:
1.客户端发起请求到api接口:用户在客户端填写用户名和密码,点击登录(发送请求);
2.api接收到客户发起的登录请求:
api验证客户发起的登录用户名和密码是否合法:
a.不合法则接口返回响应码给客户端:比如要求用户名必须是12个字符内的中英文,不允许有其他字符;
b.合法api将客户输入的用户名和密码发给db层;
3.api将数据发送给 db层,db层则返回查询的数据信息给api;
4.api接收到返回的数据处理后,再响应给客户端。
总结:
客户端发起请求到api,api校验通过合法后,将请求发送到db层,db层将请求进行处理并响应返回到api,api接收到数据并对返回的数据进行处理后,将数据返回给客户端响应;
Jmeter能做什么?
1、BS架构应用性能
2、http协议接口的功能和性能
3、ftp协议接口的功能和性能
4、mysql数据库性能 (分三层)
5、MongoDB数据库性能
6、支持自定义java组件开发
一、常见的接口协议
HTTP 超文本传输协议
HTTPS 安全超文本传输协议
FTP 文件传输协议
UDP 用户数据协议
IP 互联网协议
TCP 网络控制协议
二、http协议响应码
1XX:信息响应类,表示接收到请求并继续处理
2XX:处理成功响应类,表示动作被成功接收,理解和接受
3XX:重定向响应类,为了完成指定动作,必须接受进一步处理
4XX:客户端错误,客户请求包含语法错误或是不能正确执行
5XX:服务端错误,服务器不能正确执行一个正确的请求
三、常见的http的请求方式
共有八种方式,常用是get和post
万能的JMeter
一、BS架构应用性能
二、HTTP协议接口功能与性能
三、FTP协议接口功能与性能
一、Mysql数据库性能
二、MongoDB数据库性能(读取、写入)
三、支持自定义java组件开发
注意:
1)方法名称是区分大小写的,
当某个请求所针对的资源不支持对应的请求方法的时候,
服务器应当返回状态码405(Method Not Allowed);
当服务器不认识或者不支持对应的请求方法时,
应返回状态码501(NOT Implemented)。
2)HTTP服务器至少应该实现GET和HEAD/POST方法
HTTP协议请求响应模型
client-API-DB-API-client
http协议请求响应模型(一次请求的生命周期或简单的软件分层)
场景:登录
1、客户端发起请求到api层
1.1用户在客户端填写用户名和密码,点击登录,发送请求
2、api接收到客户端发起的用户请求
2.1 api对业务逻辑进行验证
2.1.1 验证用户名或密码的合法性
比如:用户名要求必须为真实手机号码(11位,1开头,第二位34578)
如果验证失败,即用户名不合法,那么给客户端返回响应码
比如码值为1,2,3
1代表用户名格式错误
2代表用户名或密码错误
3代表密码格式错误
3、api会将用户输入的数据发给db层
Create、Read、Update、Delete
select * from user where userName=‘’ and password = ‘’;
3.1数据库查询成功则返回1,失败则返回0
4、DB会将返回的查询数据数的条目数给api
5、api返回成功或失败的状态码给客户端
6、客户端将返回信息提示给用户
一、客户端
(功能测试、性能测试、自动化测试)
二、接口层
接口测试(功能测试、性能测试、自动化测试【维护脚本】)
三、数据库层
可以将发开人员使用到的sql语句单独拿出来进行性能测试
HTTP协议响应码
1XX:信息响应类,表示接收到请求并且继续处理
2XX: 处理成功响应类,表示动作被成功接收、理解和接收
3XX: 重定向响应类,为了完成指定的动作,必须接收进一步处理
4XX: 客户端错误,客户请求包含语法错误或者是不能正确执行(404)
5XX: 服务端错误,服务器不能正确执行一个正确的请求
HTTP协议栈中的位置
HTTP HTTPS
TCP SSL/TLS
IP
数据链路层
常见的接口协议
HTTP 超文本传输协议
HTTPS 安全超文本传输协议
FTP 文件传输协议(X-Shell)
TCP 网络控制协议
IP 互联网协议
UDP 用户数据协议(QQ、微信,我向服务端传输一种协议,服务端处理客户端,把数据扔给客户端就ok啦)
查看结果树打印大量的请求结果 实际上会消耗IO 连带会影响CPU
解决乱码的三种方法:
1、添加后置处理器
设置为UTF-8
2 、直接修改接口参数为utf-8
3、修改Jmeter配置文件的ISO后面的编码encoding为 utf-8
jmeter:适用
BS架构的应用性能
HTTP接口的功能与性能
ftp协议接口功能与性能(文件数据上传下载)
Mysql 数据库性能
MongoDB数据库性能(写入、读取)
支持自定义java组件开发
客户端-接口-数据库
404 405 505 要重点看