• 阶段笔记


    一、测试基础理论

    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的值?

  • 相关阅读:
    Hadoop 2.2.0单节点的伪分布集成环境搭建
    CentOS系统中出现错误--SSH:connect to host centos-py port 22: Connection refused
    JUnit 5和Selenium基础(三)
    JUnit 5和Selenium基础(二)
    JUnit 5和Selenium基础(一)
    如何对N个接口按比例压测
    性能测试中标记每个请求
    初学者的API测试技巧
    Web安全检查
    Groovy重载操作符
  • 原文地址:https://www.cnblogs.com/Kaylee/p/15913052.html
Copyright © 2020-2023  润新知