知识小结(1)

 API知识

1、HTTP的完整请求流程

客户端和服务端建立TCP链接

客户端发送request请求

服务端response响应回复

客户端和服务端断开TCP链接

2、怎么理解get和post请求

GET请求:客户端从服务端获取资源

POST请求:客户端向服务端添加新的资源

3、在postman中写断言的地方为?

在postman中的tests中添加断言

4、怎么理解postman里面的collections

collections在postman中所表达的意思就是集合

5、动态参数在postman里面的解决思路,请使用步骤的方式描述出来

第一步、postman中添加一个测试用例

第二步、给测试用例添加请求参数&请求头&断言

第三步、先运行刚才创建的这个测试用例,得到服务端返回的响应数据,在响应数据中找到动态参数的位置

第四步、返回测试用例的断言中,添加一个提取动态参数的断言

第五步、在后面的测试用例中,如果需要使用这个动态参数,即可直接调取

注意:当后续调用变量时需要在集合中运行测试用例

6、在postman中,怎么调用变量

在定义变量后如果需要使用这个变量直接输入{{}}即可使用({{}}中填写的是之前定义变量的名称)

7、接口断言需要断言那方面

需要断言响应数据、协议状态码、业务状态码

8、怎么理解协议状态码:404

404即表示请求的资源不存在&请求的地址不存在

9、如果一个接口访问时400,排查思路时什么?

请求参数有问题,首先查看请求参数和请求头是否有问题

10、怎么理解同步通信

客户端发送请求,服务端必须响应,这就导致很多时候在排队,服务端如果不响应客户端就会一直排队,就会导致拥堵

11、怎么理解异步通信

客户端和服务端不需要关注对方的存在,只需要关注对应的MQ的消息,客户端与服务端的交互主要是会通过MQ的消息中间作为消息的 传递来进行交互的 。

12、怎么理解cookie,session,token

cookie的数据是保存在客户端的所以他不安全,session的数据是保存在服务端的,而token是基于session开发的,我们可以将它理解为一个令牌,每次返回的数据都是不一样的,是一串随机的字符串

13、请按步骤的方式描述session的请求流程

第一步、客户端输入账户和密码登录

第二步、登录成功后,服务端会生成一个sessionID通过set cookie将sessionID返回给客户端,并将session保存在服务端

第三步、客户端后续发送请求会将sessionID在请求头中带上并发送给服务端

第四步、服务端将客户端发送的sessionID和服务端保存的sessionID进行对比,若对比一致则继续访问,若不一致则直接返回登录页面

14、如果发送请求,协议状态码返回500的错误,怎么解决?

首先检查测试用例的请求地址和请求头,如果没有问题就可以先找程序员排查问题或者也可以直接提单

15、怎么理解协议状态码和业务状态码

协议状态码是固定,而业务状态码可以是程序员自己写的

16、按步骤的方式描述token的请求流程

第一步、客户端输入账户和密码登录

第二步、登录成功后,服务端会生成一个token令牌通过set cookie将token返回给客户端,并将token令牌保存在服务端

第三步、客户端后续发送请求会将token在请求头中带上并发送给服务端

第四步、服务端将客户端发送的token和服务端保存的token进行对比,若对比一致则继续访问,若不一致则直接返回登录页面

17、按步骤的方式描述cookie的请求流程

第一步、客户端输入账户和密码登录

第二步、登录成功后,服务端会生成一个cookie返回给客户端,并将cookie保存在客户端

第三步、客户端后续发送请求会将在请求头中cookie带上并发送给服务端

第四步、服务端将客户端发送的cookie和服务端保存的cookie进行对比,若对比一致则继续访问,若不一致则直接返回登录页面

18、在get请求里面,如果有请求参数,使用的参数是那个的?params http://localhost:5000/login?name=wuya&age=18

 get请求中,如果有请求参数,请求参数在params下的query params里填写,key为name,value为weya;key为age,value为18。

19、postman里面在哪里填写请求参数

在postman的测试用例中点击Body之后下面会出现数据格式的选择,表单的数据格式可以直接点击,JSON&XML&HTML的数据格式就需要点击raw然后再最后面会出现一个选择格式的字体,然后再选择具体的格式

性能测试:

1、响应时间你是怎么理解的?

响应时间指的是一次完成的HTTP的请求流程,即响应时间=网络时间+应用程序处理的时间

2、怎么区分负载测试和压力测试

负载测试是找到系统的处理极限,为系统调优提供数据,从而达到了解系统性能的容量

压力测试是检查系统在处于压力情况下时应用的性能表现

3、你是怎么做稳定性测试的?

一般情况下是使用Loucts来进行稳定性测试,首先需要编写louctsfile文件,然后再控制台进入保存Loucstfile文件所在的目录下,输入locust -f 之前保存的文件名,然后再浏览器中进入loucst,并设置虚拟并发用户数、每秒并发多少虚拟用户和服务器地址,持续不间断的向服务器发送请求,验证返回的协议状态码为200,然后在检测数据

4、常用的性能测试工具有哪些?

常用的性能测试工具有jmeter和loucst。loucst适合做稳定性和压力测试,jmeter做性能测试的时候,我们可以通过grafana进行数据的可视化展示,也可以用jvisualvm监控Java程序本身的CPU和内存资源

5、说出JMeter测试工具中聚合报告中有哪些结果信息

聚合报告表格含义:

Label:取样器名称;

Samples:取样器运行次数;

Average:单个请求的平均响应时间;

Median:50%请求的响应时间;

90%Line:90%请求响应时间;

95%Line:95%请求响应时间;

99%Line:99%请求的响应时间;

Min:请求的最小响应时间;

Max:请求的最⼤响应时间;

Error%:事务错误率;

Throughput:吞吐率,也就是TPS KB/sec:每秒数据包流量;

Received KB/sec:每秒从服务器端接收到的数据量;

SentKB/sec:每秒从客户端发送的请求的数量。

6、在JMeter中,如果需要监控服务器的CPU和内存的资源,你具体是怎么做的

们需要下载 Plugins Manager插件管理器,然后重启jmeter,进入 Plugins Manager中安装PerfMon(servers Performance Monitoring)组件,重启jmeter。然后下载serverAgent后解压,将其与

jmeter放在同一目录下。做性能测试需要监控服务器的CPU和内存资源时,添加安装的PerfMon(servers Performance Monitoring)组件并启动serverAgent,进入PerfMon就添加CPU和memory,就

可以监控服务器服务器的CPU和内存资源。

7、说下你理解的性能测试流程

测试前期准备,如测试场景的梳理、测试目标的制定、设备的准备;

性能测试计划的制定,如人员分配、时间安排、用什么技术等;

测试设计与开发,如代码如何写、具体的脚本书写、测试目标如何实现思路,配置场景;

测试执行与管理,按照配置的场景进行执行即可;

数据收集,如响应时间、吞吐量等的数据的收集;

测试分析,根据收集的数据进行分析,书写测试报告。

8、性能测试结果如果不满足预期的目标,你会怎么办?

如果性能测试结果不满足预期的目标,此时就应该收集数据,然后联系开发,根据数据进行分析,找出问题并进行优化。

9、性能测试中性能的目标你是怎么定,说出具体的依据

目标一般由测试主导,根据服务面向的用户群体的需求来制定目标,然后与开发、架构师、测试等相关人员进行讨论,最后决定具体的目标

10、怎么理解黑合测试,白盒测试

黑盒测试:就像一个不透光的盒子,看不到内部的代码和结构

白盒测试:可以看到内部的代码和结构

综合考核:

1、HTTP协议的组成部分?

主要包含request请求和response回复响应。request请求又包括请求头、请求参数、请求方法和请求地址。response回复响应数据又包括响应数据、协议状态码、业务状态码。

2、postman中断言是在哪里断言?断言哪三部分?

postman在tests中添加断言,断言主要包括验证协议状态码、业务状态码和响应数据

3、postman的请求参数在哪里?

gei请求:在params下的query params里可以填写,以key=value的形式填写

post请求:在Body中填写,但是需要根据请求参数的数据格式选择填写,如果是表单数据格式在X-www-form中填写;如果是json&xml&html的格式下在raw中选择对应的数据格式下填写。

4、一个完整的测试流程?

产品需求文档评审设计------评审------不通过------再次评审

产品需求文档评审设计------评审------通过------程序员编写程序代码--------开发完成------测试通过需求文档编写测试用例--------评审

8、接口测试需要携带哪些参数?

get:需要填写请求方法、请求地址和请求参数

post:需要填写请求方法、请求地址、请求参数和请求头

9、常用的请求方法?get和post方法区别?

常用的请求方法有get、post、put、delete。

     GET:客户端从服务端获取资源

    POST:客户端向服务段发送请求添加新的资源

      PUT:客户端针对服务端已有的数据进行修改

DELETE:客户端删除服务端已有的资源

get和post的区别在于get请求的请求参数是在parmas下的query parmas中填写,post请求相对于get请求需要填写请求头

10、常用的业务状态码

200   请求成功

201   添加成功

204   删除成功 

301   永久重定项

302   临时重定项

400   Bad Request客户端请求错误(请求参数不对或请求头不对)

401   Unauthorized无权限访问

403   Forbidden有权限但是禁止访问

404   请求的资源不存在&请求地址不存在

405   不被允许的请求方法

500   服务器内部错误

504   GateWay Timeout网关超时

上一篇:软件测试教程:如何使用Postman实现数据驱动?


下一篇:postman手动添加Cookie