-
1xx:是一种中间状态
2xx:被服务器成功接收、理解和接收
3xx:重定向
4xx:客户端错误:语法错误、请求不能正常执行
5xx:服务器端有问题
查看全部 -
常见接口协议:
1、http
2、https
查看全部 -
百度中搜索:天气预报api请求 可以查询到免费的api接口地址,可以用这些接口地址进行接口测试实践。
查看全部 -
常见接口协议:HTTP 超文本传输协议
HTTPS 安全超文本传输协议
FTP 文件传输协议
TCP 网络控制协议
IP 互联网协议
UDP 用户数据协议
查看全部 -
简单的软件分层
一、 客户端
功能测试、性能测试、自动化测试
二、 接口层
接口测试、功能测试、性能测试、自动化测试
三、 数据库层
可以将开发人员使用到的sql语句单独拿出来进行性能测试
查看全部 -
HTTP协议响应码:
1xx:信息响应类,表示接收到请求并且继续处理
2xx:处理成功响应类,表示动作被成功接收、理解和接受
3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
4xx:客户端错误,客户请求包含语法错误或者是不能正确执行
5xx:服务端错误,服务器不能正确执行一个正确的请求(查看日志)
查看全部 -
常见的接口协议
http:超文本传输协议
https:安全的超文本传输协议
ftp:文件传输协议
tcp:网络控制协议
ip:互联网协议
udp:用户数据协议
查看全部 -
不同视角的接口
开发:模块和模块之间的对接方式定义
测试:可以独立部署成服务的协议接口
查看全部 -
参数化--函数助手(选项--函数助手对话框)
函数助手(作用:可以实现参数的多变)
CSV file值,写入相关参数数据文件的路径
CSV文件序号值,写入0,因为数据一般从0行开始读取
点击生成会生成相关函数字符串,将其复制到HTTP请求路径处的参数值位置即可
2.线程组设置
a、线程数:相当于虚拟用户数,即并发用户数(若设置为1,则只会读取参数文件中第一行的数据)
b、Ramp-Up Period(in seconds):加压参数,即几秒内执行完所有的用户线程
c、循环次数:执行线程的次数
3.复杂场景需要使用多个线程组
查看全部 -
每做一个脚本都需要添加一个线程组
线程组用于设置脚本运行的用户数,相当于一个场景设置
HTTP请求:服务器名称或IP不能写成“http://localhost”,即“http://”头不用写,请求时会自动加上
请求结果中文乱码解决:
(1)可以解决部分中文乱码
JMeter的HTTP请求页面中“Content encoding”设置为“utf-8”;
(2) 一般可以解决
打开JMeter安装文件bin下的jmeter.properties,修改sampleresult.default.encoding=UTF-8(去掉前面 的“#”,修改ISO-8859-1为UTF-8)
(3)可以解决几乎所有
线程组添加后置处理器BeanShell PostProcessor,Script写入prev.setDataEncoding("utf-8")
聚合报告反应整个测试的结果
察看结果树只是供测前调试,真正测试时关闭察看结果树
查看全部 -
万能的JMeter
一、BS架构应用性能
二、HTTP协议接口功能和性能
三、FTP协议(上传下载文件业务)接口功能和性能
数据库
三、Mysql数据库性能(关系型数据库)
(分层性能测试:B/S 1.浏览器性能测试;2.api接口性能测试; 3.数据库性能测试)
四、MongoDB(非关系型数据库,一般需要存储大量数据且无须事务关联时用它)
五、支持自定义java组件开发
1.可以开发符合自己公司需求的协议,业务流程等
2.便于管理测试性能代码,不以脚本形式保存,而是像开发代码一样可以上传到git等进行管理
拓展:关系型数据库与非关系型数据库
关系型数据库,是指采用了关系模型来组织数据的数据库。可以理解成二维的excel表格,是一一对应关系比如MySQL;
非关系型数据库,是指采用了没有特定关系模型来组织数据的数据库。可以理解成一对多的数据关系,比如MongoDB;
不同的数据类型各有优缺点:
非关系型数据库的优势:
1. 性能
NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。
2. 可扩展性
同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。关系型数据库的优势:
1. 复杂查询
可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
2. 事务支持
使得对于安全性能很高的数据访问要求得以实现。查看全部 -
HTTP请求的方法:
HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),
来表明Request-URL指定的资源不同的操作方式
1、OPTIONS
返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送'*'的请求来测试服务器的功能性。
2、HEAD
向服务器索与GET请求相一致的像一股脑,只不过响应体将不会被返回。
这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
3、GET
向特定的资源发出请求。
注意:GET方法不应当被用于产生“副作用”的操作中,
例如咋web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。
4、POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。
数据被包含在请求体中。
POST请求可能会导致新的资源的建立和/或已有资源的修改。
5、PUT
向指定资源位置上传其最新内容
6、DELETE
请求服务器删除Request-URL所标识的资源。
7、TRACE
回显服务器收到的请求,主要用于测试活诊断。
8、CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
注意:
1)方法名称是区分大小写的,
当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);
当服务器不认识或者不支持对应的请求方式时,应返回状态码501(Not Implemented)。
2)HTTP服务器至少应该实现GET和HEAD/POST方法,
其他方法都是可选的,此外除上述方法。
get请求:
http://127.0.0.1:8080?username=zhangsan&password=123
post请求:
(请求参数包含在请求体中)请求体
{
[
"username":zhangsan,
"password":123
]
}
查看全部 -
Http协议请求响应模型(一次请求的生命周期或简单的软件分层):
/******
client(客户端发起请求)->API(api接口层对请求进行逻辑处理)->DB(接收逻辑处理后的数据请求,返回状态)->API(将相应的请求结果返回到客户端)-client
******/
1.客户端发起请求到api接口层
1.1用户在客户端填写用户名和密码,点击登录,发送请求
2.api接收到客户端发起的用户请求
2.1 api对业务逻辑进行验证
2.1.1 验证用户名和密码是否合法
比如:用户名要求必须为真实手机号码(11位,1开头等)
如果验证失败,即用户名不合法,那么需要给客户端返回响应码
(此处响应码为自定义的,比如码值为1,2,3
1代表用户名格式错误
2代表用户名或密码错误(不具体说明哪个错误是为了安全,防 止黑客知道正确账号后进行密码的暴力破解)
3代表密码格式错误)
3.api会将用户输入的数据发给db层
Create、Read、Update、Delete
//数据库操作一般不直接进行delete,而是通过update一个布尔值isdelete,来说明该条数据是否处于删除状态
select ......... where userName='' and psd=''
3.1数据库查询成功则返回1,失败则返回0
4.DB会将返回的查询数据库的条目数给api
5.api返回成功或失败的状态码给客户端
6.客户端将返回信息提示给用户
最简单的软件分层:
一、客户端(B/S中的浏览器,C/S中的客户端)
功能测试,性能测试,自动化测试
二、接口层(逻辑处理)
接口测试,功能测试,性能测试,自动化测试
三、数据库层
可以将开发人员使用到的sql语句单独拿出来进行性能测试
查看全部 -
Http协议响应码
1xx:信息相应类,表示接收到请求并且继续处理(中间处理过程)
2xx:处理成功响应类,表示动作被成功接受,理解和接受(成功回应)
3xx:重定向响应类,为了完成指定的动作,必须接受进一步的处理
4xx:客户端错误,客户请求包含语法错误或者是不能正确执行(404请求的资源文件不存在)
5xx:服务端错误,服务端不能正确执行一个正确的请求(此时客户端请求没出错,是服务端的问题,可能存在(网络请求)超时和服务僵死的问题,一般重启可行,但不能治本,一般要查看服务端日志,查看抛出的异常错误)
查看全部 -
http协议响应码:
1xx:信息响应类,表示接收到请求并且继续处理
2xx:处理成功响应类,表示动作被成功接收、理解和接受。(如200,请求成功)
3xx:重定向响应类,为了完成指定动作,必须接受进一步处理
4xx:客户端错误,客户请求包含语法错误或者是不能正确执行(如404,请求资源不存在)
5xx:服务器错误,服务器不能正确执行一个正确的请求(如500,检查URL地址是否正确,条件允许下重启服务器)
查看全部
举报