阶段笔记

一、测试基础理论

1、bug完整的生命周期

2、测试用例的要素有哪些?

测试ID,用例名称,测试目的,测试级别,测试环境,前提条件,参考信息,测试步骤,预期结果,设计人员

3、怎么理解黑盒测试,白盒测试

黑盒测试就是把测试的程序看作是一个黑色的盒子,看不到里面的结构,对应的是系统测试

白盒测试就是把被测程序看作是一个白色的盒子,可以看到里面的结构,对应的是单元测试

4、测试按阶段划分,主要分为那几个阶段

单元测试:是针对程序最小的离度测试,主要应用于白盒测试,程序是由代码写的,最小单位是方法,所以单元测试是针对方法的测试

集成测试:是把单个模块的程序集成到一起的测试,主要是针对不同模块集成后模块与模块之间的功能性,功能流程性和逻辑兼容性

系统测试:将软件系统看作是一个系统测试,包括对系统功能、性能以及软件所运行的软硬件环境进行测试,大部分在被测系统执行阶段来验证整体性功能

验收测试:是部署软件之前最后一个测试操作,是技术测试最后一个阶段,也被称为交付测试

5、怎么理解等价类和边界值

等价类:是把所有可能的输入数据,及程序的输入域分为若干部分(子集),在每个子集中选取少部分具有代表性的数据作为测试用例,该方法是一种重要的常用的黑盒测试用例设计方法

边界值:边界值分析法是对输入输出的边界值进行测试的一种黑盒测试方法,通常这个是等价类方法的补充,测试用例来自等价类的边界

6、请描述一个完整的测试流程

7、列表常用的测试用例设计方法,请结合具体的产品说明它的使用

1、等价类

2、边界值

3、错误推测法

4、正交实验设计

5、判定表驱动分析

6、功能图

7、因果图

8、场景设计

8、请描述一下你理解的测试流程

评审通过后,查看评审需求描写测试用例,开会讨论测试步骤,参会的人员一般有:产品经理、开发、测试。测试讲述过程中,随时有人提出不合理的部分(没有出现过或是不合理的场景),可以当场记录会后自行补充和修改合理,完成后发送群内@参会人员,一般测试主管会查看修改后的内容

 

二、接口测试相关(API)

1、HTTP的完整请求流程

1.1客户端与服务端建立TCP连接

1.2客户端向服务端发送request请求

1.3服务端返回response响应

1.4客户端与服务端断开TCP连接

2、怎么理解get和post请求

GET:表示客户端向服务端获取已有的资源

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

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

添加新的请求,依据请求信息得到的相应信息,在tests中填写断言,判断是否通过

4、怎么理解postman里面的collections

一般设置动态参数后,不能单独执行index接口,单独执行的话,响应状态码会显示401(无授权),所以需要集合运行

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

1)先添加测试用例,通过接口auth登陆成功后,在响应数据内显示登录信息,定义全局变量,具体为:{{变量}}

2)登陆成功后,在响应信息中返回认证授权

3)添加请求头,先执行登录授权接口,再执行index接口,可以获取到变量的值

注意:后续运行中需要集合运行

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

前提条件:假设有一个管理系统,可以增加修改删除查看,每次增加返回的ID都是不一样的,后面查看修改删除都会使用到这个ID

先在postman中添加新的测试用例,添加成功后发送请求,在响应数据中获取动态参数,获取的方式具体为:

A、在postman的tests里面首先通过JSON.parse(responseBody)获取相应数据
B、获取响应数据成功后,使用pm.environment.set来定义一个全局变量,变量的值就是获取到的动态参数
3、在后续的查看修改删除中,使用到这个动态参数的ID,通过调用变量的方式,具体为:{{变量名称}}

7、接口断言需要都有哪方面

协议状态码、响应数据、业务状态码

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

这个是请求的资源不存在,一般是请求地址不存在,所以导致请求资源不存在

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

请求错误,需要查看是否是请求参数或请求头不对导致

10、怎么理解同步通信

客户端发送请求给服务端,服务端必须回应客户端的请求

缺点:1)容易超时,客户端发送请求后,服务端迟迟没有回应客户端的请求

            2)如果请求时存在大的计算量和逻辑存在问题,就会导致请求堵塞,后面的都挤压

11、怎么理解异步通信

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

12、怎么理解cookie,session,token

cookie主要是存储用户操作行为的数据,session是把登陆成功后的数据存储在服务端,token本质是cookie的原理,可以理解为一个令牌

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

1)客户端输入账户和密码,点击登录

2)登陆成功后,服务端把用户登陆成功的信息生成一个sessionID的凭证,并且存储在服务端

3)服务端会通过响应头中的set-cookie把生成的sesson返回给客户端

4)客户端再次查看个人主页,客户端通过请求头中的cookie,把set-cookie返回来的sessionID带上,发送给服务端

5)服务端接收到客户端发送的sessionID,和存储在服务端的sessionID做一个对比

6)如果对比一致,用户可以继续访问系统的任何功能,如果结果不一致,立刻跳转到登录的页面

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

首先检查测试用例的请求信息,重新测试,还是错误可以先找程序员排查问题或提交BUG

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

协议状态码是已有的11种,业务状态码可以是程序员自己写的

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

1、客户端输入账户和密码,点击登录

2、登陆成功后,服务端把用户登陆成功的信息生成一个Token的凭证,同时存储在服务端

3、服务端会通过响应数据或者响应头中的set-cookie返回给客户端

4、客户端再次向服务端发送请求,会在请求参数或者请求头中的Authuration中带上返回来的token发送给服务端

5、如果对比一致,用户可以继续访问系统的任何功能,如果结果不一致,立刻跳转到登录的页面

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

1)客户端输入账户和密码,点击登录

2)登陆成功后,服务端把用户登陆成功的信息生成一个sessionID的凭证,并且存储在本地

3)服务端会通过响应头中的set-cookie把生成的sesson返回给客户端

4)客户端再次查看个人主页,客户端通过请求头中的cookie,把set-cookie返回来的sessionID带上,发送给服务端

5)服务端接收到客户端发送的sessionID,和存储在服务端的sessionID做一个对比

6)如果对比一致,用户可以继续访问系统的任何功能,如果结果不一致,立刻跳转到登录的页面

18、怎么理解Requets里面的post请求方法的data和json

Data是表单数据格式,Json是处理Json数据格式,当我们需要Data处理Json数据格式时,需要对Json数据进行序列化格式处理

19、怎么理解序列化与反序列化?

序列化把内存里的数据类型转为字符串的数据类型。简单的说就是把Python的数据类型(字典,元组,列表)转为str的数据类型过程

反序列化就是str的数据类型转为Python对象的过程

  dump和load是仅针对文件的序列化与反序列化,其他使用dumps()和loads()表示

20、在Python种,接口测试的库是哪个?

requests

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

在params下的query params里填写,key为name,value为wuya;key为age,value为18

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

请求头中的数据格式决定了请求参数的格式

GET:在Headers中填写Authorization

POST:body中选择json、html或xml

23、参数之间的关联在代码里面怎么解决?

pytest里面的Fixture函数

返回值的思想

24、怎么理解session会话对象

session会话就是把请求的sessionID设置成一个全局变量,让所有的请求之间session能够共享,这样的话底层TCP只需要建立一次,那么就节约了请求时间

 

三、性能测试

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

网络时间+应用程序的处理时间

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

负载测试:在被测系统上持续不断的增加压力,直到性能指标(响应时间等)超过预定指标或者某种资源(CPU&内存)使用已达到饱和状态。核心是找到系统的处理极限,                      为系统调优提供数据,从而达到了解系统性能的容量

压力测试:该方法是指系统在一定饱和状态下,具体如CPU,内存等饱和使用的情况下,系统能够处理的会话能力,以及系统是否会出现错误,比如TimeOut,OOM,                    OverStackExpection(堆栈异常)

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

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

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

1)loadruuner——惠普:包含LR/QTP/QC,最高可负载1000

2)JMeter——二次开发:平台

3)locust——协程

4)子集开发工具

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

Label、样本、平均值、中位数、90%请求响应时间,95%请求响应时间,99%请求响应时间,min、max、异常、吞吐量

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

添加测试用例,输入需要验证的信息,线程组中输入运行数量信息,添加jp@gc - PerfMon Metrics Collector,点击Add Row添加查看

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

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

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

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

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

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

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

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

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

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

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

 

四、综合考核

1、HTTP协议的组成部分?

请求:请求头、请求地址、请求方法、请求参数

响应:协议状态码、业务状态码、响应数据

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

添加新的请求,依据请求信息得到的相应信息,在tests中填写断言,判断是否通过

协议状态码、响应数据、业务状态码

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

请求头中的数据格式决定了请求参数的格式

         GET:路径参数 http://xxx.com/?name=wangpan&age=27 ?

    key1=value1&key2=value2(get的请求参数与数据格式没任何关系)

         POST:payload中显示了请求的参数

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

5、冒烟测试是什么?

目的是确认软件基本功能正常,使用场景:开发转测后,测试要进行冒烟测试,验证被转测的软件基本流程是否正常

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

请求头,请求地址,请求方法,请求参数(可能有,也可能没有)

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

常用的请求方法有GET、POST、PUT、DELETE。

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

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

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

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

区别:GET请求的请求参数是在parmas下的query parmas中填写,POST请求需要依据数据格式在body内填写

8、常用的业务状态码

200 请求成功

201 添加成功

204 删除成功

301 永久重定向

302 临时重定向

400 请求错误(请求参数或请求头不对)

401 无权限访问系统

403 有权限但禁止访问系统

404 请求的资源不存在(请求的地址不存在,所以导致请求资源不存在)

405 不被允许的请求方法

500 服务器内部错误

        1、空指针,2、堆栈溢出,3、OOM,4、其他异常

504 网关超时

 

 

Linux知识:
1、查看进程的命令
2、查看端口的命令
3、赋予文件权限的关键字
4、r,w,x对应的数字是多少
5、给一个文件给rwx权限
6、git提交文件的命令是什么
7、git创建仓库的命令是什么
8、查看内存的命令
9、编辑文件的步骤
10、查看文件前5行的命令
11、查看文件后10行的命令
12、文件查看命令
13、平均负载怎么查看

 

API知识:
1、HTTP的完整请求流程
2、怎么理解get和post请求
3、在postman中写断言的地方为?
4、怎么理解postman里面的collections
5、动态参数在postman里面的解决思路,请使用步骤的方式描述出来
6、在postman中,怎么调用变量
7、接口断言需要是那方面
8、怎么理解协议状态码:404
9、如果一个接口访问时400,排查思路时什么?
10、怎么理解同步通信
11、怎么理解异步通信
12、怎么理解cookie,session,token
13、请按步骤的方式描述session的请求流程
14、如果发送请求,协议状态码返回500的错误,怎么解决?
15、怎么理解协议状态码和业务状态码
16、按步骤的方式描述token的请求流程
17、按步骤的方式描述cookie的请求流程
18、怎么理解Requets里面的post请求方法的data和json
19、怎么理解序列化和反序列化
20、在Python中,接口测试的库是那个?
21、在get请求里面,如果有请求参数,使用的参数是那个的?params http://localhost:5000/login?name=wuya&age=18
22、postman里面在哪里填写请求参数
23、参数之间的关联在代码里面怎么解决?
24、怎么理解session会话对象

 

测试基础理论:
1、bug完整的生命周期
2、编写测试用例的要素是什么?
3、怎么理解黑合测试,白盒测试
4、测试按阶段划分,主要分为那几个阶段
5、怎么理解等价类和边界值
6、请描述一个完整的测试流程
7、列表常用的测试用例设计方法,请结合具体的产品说明它的使用
8、测试用例的要素有哪些?
9、请描述一下你理解的测试流程

 

综合考核:
1、HTTP协议的组成部分?
2、postman中断言是在哪里断言?断言哪三部分?
3、postman的请求参数在哪里?
4、一个完整的测试流程?
5、冒烟测试是什么?
6、开发要转测的依据是什么?
7、如果开发那边代码写不完,超过预期时间你怎么办?
8、对淘宝购物车有哪些测试点?用等价类边界值如何划分?
9、ui测试定位元素有?对于多元素怎么定位?
10、ui自动化测试怎么进行接口测试?
11、接口测试需要携带哪些参数?
12、linux有哪些常用的命令?查看文件是那个命令?
13、比如mysql中对2021年的前6个月的工资总和,用到那些命令?
14、常用的请求方法?get和post方法区别?
15、常用的业务状态码?
16、元组和字典的区别?
17、字典如何输出key的值?如何输出value的值?

posted @ 2022-02-19 16:52  棠小梨  阅读(51)  评论(0编辑  收藏  举报