image.png
    image.png
    image.png
    image.png
    image.png
    image.png

    HTTP
    Http是什么?/TCP/IP是什么?
    HTTP:超文本传输协议。属于应用层的协议。
    网络传输的底层:TCP/IP。
    基于TCP/IP网络传输的底层出现了https协议,(s即安全的意思)在外网的话,都会做成安全模式。
    面试时主动讲:http的方法有很多,最主要的四大方法是put,delete,get,post(get,post测试用的最多),
    接着讲:get和post的区别(post提交数据给服务器,改变服务器的数据,参数填写在body里,看不到url参数,数据都放在包里,更安全;get仅仅是获取数据,直接在params里填写。)
    HTTP和HTTPS的区别
    1、https协议需要得到CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(原来网易官网是http,而网易邮箱是https。)
    2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
    3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    4、http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

    “登录”功能测试点
    1.功能:
    正常(正确的用户名和密码)、
    异常 (错误的用户名,错误的密码的不同组合),出入错误后有提示,提示信息显示
    特殊字符、密码长度、空格等
    2.兼容性:
    浏览器(IE,Chrome),
    界面(手机,平板,web端等平台显示是否完整)
    3.安全性
    cookie
    4.性能:
    打开速度,并发

    接口自动化
    测“登录”的测试

    登陆有很多异常场景,用数据驱动的方法(即将测试数据放在数据文件里边,用代码去读取文件,然后用不同的测试用例去执行。)用pytest中的fixture来传递数据。
    接口关联的时候怎么去测/数据关联

    手工测试:
    先测接A,然后将值复制出来,再传到接口B中
    自动化:
    方法一:将参数作为变量,然后把变量作为参数传进去(但数据量较多时不使用)
    方法二:把业务封装成函数,在测业务的时候直接去调用函数

    前端、后端
    前端:负责开发页面,常用HTML、JavaScript、css等。
    后端:负责业务逻辑的处理
    前端优化时怎样优化?
    在禁用缓存的情况下,在“开发者工具”中查看发送数据请求所用的时间,对此进行优化
    get和post的区别
    1.传送方式:
    get通过地址栏传输,只是获取数据;post通过报文传输,改变服务器的数据
    2.传送长度:
    get参数有长度限制(受限于url长度),而post无限制
    3.post请求相对get更安全
    Fiddler在工作中的应用实例
    1.在抓包定位问题时会用到:
    做接口测试提交问题,提交之前需要先做判断问题是前端或是后端的问题。fiddler可以抓web端、手机app端,通过抓包来分析问题是前端还是后端。
    2.分析竞争对手的api是怎么做的。
    3.在工作中做弱网测试,可以通过抓包工具模拟弱网环境。
    PS:fiddler只能抓合http,https协议的请求。
    没有API文档时怎么做接口测试?
    可以使用fiddler抓包,提取相关的数据,整理后和开发核对相关数据参数,最后保存文档为后期存档。

    面试题讲解
    预发布环境
    一个项目的预发布环境一般只有一套(最多有两套,另一套是备用的)
    尽量模拟真实,和线上真实环境保持一致
    测试用例设计
    一个测试用例没有一个好的评判标准,将自己的思路:
    正反例拆开(从qa的思维去解答:正常的数据是用户用户的比较多的,回归测试时部分的话数据量会很大。其次一个小的数据有问题,这条用例会不通过,那么涉及到整个用例的通过率),设计时考虑优先级,切测试点(测试数据拎出来写,方便后期维护),以用户的场景角度考虑设计用例
    一般一个项目持续多久?
    没有做过一个完整的项目

    一个接口,大批量数据库如何测(成百上千的数据)
    这是一个get请求的数据。分析数据返回的内容(找规律,第一条和最后一条,分批量:每天的第一条和最后一条,自动化方法)

    怎么做接口测试的?
    做接口先拿到需求接口文档,然后分析接口文档(get,post占比,入参,出餐数据),再写测试用例,再将用例写到postman里,要注意数据上下游的传递,公共变量等,再查看返回的数据

    有没有进行过异常测试?
    举例:支付异常(fiddler里的前置断点before requests 和后置断点after response)

    手机银行APP系统

    shopXO商城
    冒烟:是前后台一起做的
    冒烟测试用例:每个步骤都要有预期结果,冒烟用例标题一般不给序号不需要模块化,一个场景一般1-2个步骤就可以

    注册有三种注册方式,写三条用例
    首页
    模块名称:商品
    二级功能:商品搜索、商品分类
    【新闻头条】:新建、显示、链接点击跳转、条数过多的处理(最多一页显示9条,写用例时写第十条用例两种显示方式,①冲掉第一条;②下方显示查看更多,具体看需求,二选一即可)
    商品显示:也是要测的,测后台配置对应的显示
    【商品搜索】
    测试点:有的商品,没的商品,已下架的商品,
    image.png

    image.png
    全部分类(一级菜单)
    新建新的商品分类(因为测试环境是一个大的框架,刚开始测试的时候都是需要从新建开始的)
    分别建一个二级的和三级的商品
    前台【全部分类】测试点:新增(是后台操作新增的)、编辑、删除,点击【全部分类】打开具体的分类、滚动条

    前台页面商品添加功能
    测试用例:
    1.进入到后台新建商品——商品新建成功
    2.前台展示该商品——商品显示完整
    3.点击新建的商品——商品信息与后台新建的信息相符
    后台商品添加功能
    用例:
    image.png


    提交订单:(面试时可以将此页面打印出来在上面讲)
    image.png
    用例:
    image.png
    提交订单快递邮寄新建并使用默认新地址
    image.png

    image.png

    image.png

    image.png

    备注:
    此处的省市选择单独写一条用例,数据是开发那边提供的,检查核对列表中的内容是否显示全
    image.png
    提交订单快递邮寄新建并使用默认新地址(反例)
    image.png

    image.png
    提交订单快递邮寄新建非默认新地址
    image.png

    提交订单支付方式货到付款提交订单
    image.png

    测试点
    cookie存在本地服务器是可见的,seesion存放在服务器上的是不可见的,相对cookie安全要高。cookie将数据保存在客户端没有退出放在后台再次进入时不需要重新登陆,session将数据保存在服务器上没有退出放在后台再次进入时需要重新登陆
    (造数据时,一般以自己的名字命名开头,方便查找自己的数据,如果不希望被改动标明“勿动”字样)

    分页:要准备的数据(假设10条为一页)0,1,10,11,
    如果数据很多时如果有分页的情况,点击首页和最后一页的的链接即可
    在第一页的时候首页按钮灰色,在最后一页的时候右边最后一个按钮是灰色
    综合排序的规律也是要测的
    销量:考虑买东西是销量的变化
    打折商品:付款时是不是打折后的价格,活动时间过后价格的变化
    个人中心订单状态:数据是造出来的,对应的每个状态下最新的一条是最新更新的数据。比如下单未付款那么待付款数+1,如果付完款等商家发货,那么待付款数-1,代发货数+1

    在测试执行时,快递单号数据一般用订单号,在订单号后面加1,这样方便查找快递信息。在后台模拟各种状态,然后要查看订单的状态是否随着更改,前台的数据也要查看
    做回归测试时,如果时间紧迫只能测十条,那前五条一定要看前台,保证用户使用的质量

    作业:在postman中写【个人中心】-【修改资料】模块虚拟接口
    作业:新增地址,然后再将地址设置为默认
    提交bug
    bug标题不要用下划线不要有前缀,直接简单明了说明bug问题
    bug描述不要有前置条件

    用例设计:
    收入统计:
    金额——打折商品价格核对,使用代金券,小数点后的金额(一般是开发设置只有后两位,但要测这一点,如果每一笔订单都差0.004,成交量超大的话金额也会比较客观)
    交易走势图
    需要新的环境(隔离式的环境),数据是空的
    时间——考虑闰年,月份天数(28,29,30,31)
    数据:做不到实时更新,定时更新数据
    折线图变化:比如同一时间待付款完成后,待付款数量减少同一时间下待发货的数量会增加(是动态变化的)
    视图切换,并且对照数据
    近30日热销商品:
    设计场景:第十条和第十一条一样时怎么显示
    拿到30日+1天、-1天的数据,检查名字,算百分比(用excel写个小工具,填入数据自动算出百分比)
    数据库查询:select 商品名称,count(数量) from 表 where 时间 between ‘2020-05-21’ and ‘2020-06-19’ group by 商品名称 order by count(数量) desc limit 10
    30+1天:select 商品名称,count(数量) from 表 where 时间 between ‘2020-05-20’ and ‘2020-06-19’ group by 商品名称 order by count(数量) desc limit 10
    30-1天:select 商品名称,count(数量) from 表 where 时间 between ‘2020-05-22’ and ‘2020-06-19’ group by 商品名称 order by count(数量) desc limit 10
    权限:
    轻描淡写地写,不必要写具体的详细步骤(但测的时候是要一步步去做的)
    如果一个大的标题下有很多分类,可以一个权限写一条用例,也可以都写在一个标题下面每个权限分一个步骤来写。
    后台管理系统不测兼容性,一般都是web端。
    兼容性测试:做一个冒烟测试

    预发布环境:
    一般要做冒烟测试
    一般不要挨个验证缺陷,挑几个之前比较严重的缺陷再验证一下(严重程度高的、优先级高的、探索式测试)
    执行新功能优先级高的用例,等新功能完成后做回归测试

    项目流程:
    先了解需求,开发和测试进行排期【主要讲测试排期(参照设计时间+执行时间)】——是为了测试左移(在设计阶段开发也是在设计,所以这个时候我们会设计测试点、测试用例。。。)
    ——设计时间:需求分析,测试点设计,评审测试点,测试用例编写
    ——执行时间:用例执行,缺陷验证跟踪
    排期完成后设计测试点,评审,测试用例执行,缺陷验证跟踪。所有用例执行完毕后,缺陷已验证关闭完毕,做回归测试完成(根据影响性分析,主要功能的选取以及根据之前的经验挑选一部分用例),到预发布环境(拿测试的最后一个版本)
    如果在预发布版本有缺陷时,回到最后一个测试环境进行修改,修改完成后再重新拿到预发布环境中进行测试
    生产环境有问题:
    在生产环境上直接修改(风险很高)或者撤回老版本用一个其他的版本直接代替重新发布
    后台-订单管理-发货
    image.png
    后台-我的订单-订单操作-支付
    image.png
    前台-我的订单-查询订单
    image.png
    前台-我的订单-订单操作-收货
    image.png
    通用-支付接口-alipay
    image.png

    image.png

    image.png

    image.png