Fork me on GitHub

电商项目

1.比如商品卖完了,就需要在后台进行添加
2.某一个功能模块使用次数很多就需要做性能测试
3.所谓的数据提交操作就是表单测试(例如登录 注册)
4.输入框的必填项和非填项的优先级
5.业务约束(我输入我的手机号有匹配对应的验证码)
6.下拉框里的密码提示问题 就是去查询数据库
7.数据的关联 模糊匹配
8.弱网测试下 重复提交 内容是否涉及加密
9.订单的搜索就会涉及到组合条件
10.删除的关联性确认数据库是否及时更新
11.cookie sesssion身份 清除缓存后从新登录的鉴权
12.界面考虑到 好不好用 操作简不简单
13.浏览器的兼容性
14.SQL注入 跨站攻击
15.monkey是稳定性测试


----------------------------------------------面试题-----------------------------------------------

1.一个登陆界面,有哪些测试点?

功能
输入正确用户名、正确密码
输入用户名如a,用户名列表出现登陆过的以字符a开头的用户名
输入错误用户名、正确密码
输入正确用户名、错误密码
输入错误用户名、错误密码
不输入用户名、不输入密码
用户名和密码都输入空格
用户名不能包含特殊字符(!@#¥%……&*)
密码不能包含特殊字符(!@#¥%……&*)
用户名、密码分别输入or 1=1 、or 1=1
登陆失败,给出正确提示
登陆失败,用户名、密码是否清空
用户名和密码是否区分大小写
是否支持上、下、左、右键

兼容性测试:
不同浏览器,不同操作系统,不同分辨率等下,登陆界面能否正常显示

安全
同一用户在多个页面同时登陆,怎样处理信息覆盖问题
密码应该密文显示、保存
密码输入框的内容是否支持复制、粘贴、移动
同一用户的登陆次数的限制
连续输入3次或以上错误密码,用户是否被锁一定时间(例如:15分钟)?时间点内不允许登陆,超出时间点是否可以继续登陆?
用户session过期后,重新登陆是否还能重新返回之前session过期的页面?
用户名和密码输入框是否支持键盘快捷键?如:撤销(Ctrl+z)、复制(Ctrl+c)、粘贴(Ctrl+v)等等。

页面
输入正确用户名、密码,按enter键
按Tab键,焦点顺序切换
按Shift+Tab键,焦点顺序切换
输入正确的用户名和密码,按Alt+F4键,软件退出
是否支持Esc键的使用

压力测试
大量并发用户(超过临界点)登陆,系统的响应时间是多少呢?系统会出现宕机、内存泄露、cpu饱和、用户无法登陆的情况吗?

 

2.一个APP怎么测?

(1) 功能测试:每项开发的新功能都需要进行测试。
(2)性能测试:CPU,内存,耗电量,流量,FPS
(3)兼容测试:不同手机,不同系统
(4)安全测试:是否容易被外界破解;是否存在被恶意代码注入的风险;
(5)服务器性能测试:能够承载多少用户量

3.python断言代码是什么?

Python的assert是用来检查一个条件,如果它为真,就不做任何事。如果它为假,则会抛出AssertError并且包含错误信息
assert?True?? ??# 条件为 true 正常执行

assert?False?? ?# 条件为 false 触发异常

4.接口的性能怎么测?

1. 响应时间
2. 吞吐率
3. 用户数
JMeter Java Sampler进行接口性能测试 

5.接口测试怎么发送成功的请求让返回的数据是错的?

1.设置响应在服务器返回后的断点
2.通过fiddlerScript来修改响应的json数据
3.通过AutoResponder来改变响应结果

6.monkey做稳定性测试如何不重复之前之前的测试?

指定事件百分比 指定不重复的命令id

7.monkey如何查看错误日志?

adb logcat *:E >文件路径

8.linux如何查看error下的错误日志?

tail 日志文件 | grep error

9.linux如何查看日志关键字?

tail 日志文件 | grep 关键字

10.接口请求跨线程如何实现关联?

首先先把动态数据找出来、然后用正则表达式取样器关联、然后添加后置处理器中;

bean shell 后置处理程序 定义新的跨线程组变量名做到跨线程组关联

11.jmeter做接口测试如何实现数据关联?

思路: 前一个请求发送后的响应数据(动态数据),作为后续请求中参数

<1>确定动态数据:对比分析法,协议数据包分析法
录制两份脚本jmx,使用文本比较器 Aptdiff
找到可疑的数据,比如Session id,编号...商品id
确定需要关联

<2>找到相应请求
根据请求参数,数据包数据规律查找

<3>在相应请求节点下,添加"后置处理器":"正则表达式取样器"
目的:根据响应数据包,根据左右边界,获取静态数据,存于关联参数中

<4>将后续请求中的静态数据,替换为关联参数${变量名}

12.下一个接口依赖上一个接口怎么实现

用一个全局变量来处理依赖的数据,比如登录后返回token,其他接口都需要这个token,那就用全局变量来传token参数

13.你做什么请求的接口多?

post get

14.HTTPS和HTTP有什么区别?

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

15.你测购物车里的优惠券有哪些异常场景?

1.购物车无缘无故被清空
2.客户对订单删除进行物理删除,上家的也被删除了
3.卖家删除商品,该商品正在进行中的订单不能进行任何操作
4.商品加入购物车,然后提交订单但是没有支付 此时购物车居然还有刚刚添加的商品

16.项目上线出了问题,你该怎么办?

即时反馈给研发团队,确定是否为bug,如果非BUG的,那确定问题产生的原因,并让问题对接人知晓后反馈和客户。如果确定为BUG后,则需要对bug的严重等级进行评级。如果是轻微或者不会对用户使用造成太大问题的,可以作为优化项放到后面版本迭代时进行修复。反之严重问题,就应该找到bug所属模块的程序负责人,确定解决方案,并及时发布对应的补丁包或者给出解决措施。同时,问题对接人一定要给用户进行反馈或说明,包括对解决方案的简单说明

17.你们项目上线怎么运营的?

市场+运营负责

18.项目上线后客户需要添加商品,怎么办?

客户自己在后台添加

19.商城进行活动,后台怎么配置?

客户配置

20.打折商品组合之后下单,调用优惠券,后台怎么配置?

客户配置

21.自动化框架了解哪些,框架函数了解吗?

selenium QTP pytest

22.接口自动化流程?

分析需求-->搭建自动化环境--->(抽取接口功能用例并将其转化成自动化用例)编写脚本用例--->执行用例--->产生测试报告--->持续集成(如果有需要)

23.怎么查询一个客户一个月来的访问量?

24.调用第三方API时,发送正确的请求如何实现数据返回错误?

mock

25.怎么跨数据库调用数据?

jemter里面的JDBC

 


--------------------------------------------接口---------------------------------------------

1.前端几种加密方式整理?

MD5加密(不能解密) base64加密 sha1加密 RSA加密
对称加密和非对称加密

2.流行的接口有哪几种协议的接口?

HTTP HTTPS dubbo,rpc

3.http协议有什么特点?

无状态(无记忆) 灵活 无连接 简单快速

4.postman如何实现接口关联?

tests实现接口的关联 全局变量

5.接口未全部提测,怎么实现接口脚本间的自动关联?

6.若请求需要先登录后方可请求,如何进行接口测试?

7.cookie和session的原理?区别是什么?

8.接口测试断言从哪些方面去设计?

1.状态码
2.返回值
3.数据库校验
4.空校验,异常校验(数据,环境,前置条件异常)
5.冥等性(例如外卖下单点100次不支付,产生的垃圾数据)
6.流程节点限制

9.dubbo接口如何测试?

--------------------------------------------------------------------------------------------

1、目前市面上流行的接口大多有哪几种协议的接口?

答:http,https,dubbo,rpc等即可。

2、接口的请求方式有哪几种?

答:get,post,put,delete,head,Trace,opions等,大多以get和post请求为主

3、get和post区别是什么?

答:POST和GET都是向服务器提交数据,并且都会从服务器获取数据。

区别:
(1)传送方式:get通过地址栏传输,post通过报文传输,故而post更相对来说私密性一点
(2)传送长度:get参数有长度限制(受限于url长度),而post无限制
(3)get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留
(4)get方式大多用作查询接口,获取响应数据;而post方式更多做数据添加、修改或删除等操作

4、post请求的请求类型有哪几种?

答:application/json json字符串

application/x-www-from-urlencoded 表单传递

multipart/form-data 主要用于上传文件

5、cookie和session的区别是什么?

答:cookie数据存放在客户的浏览器上,session数据放在服务器上。

cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie。

单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie。

6、请求接口中常见的返回状态码

答:
1xx – 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)
2xx – 成功(表明服务器成功地接受了客户端请求)
3xx – 重定向(客户端浏览器必须采取更多操作来实现请求,例如用户未登录就操作了修改的功能)
4xx – 客户端错误(发送错误,客户端有问题)
5xx – 服务器错误(服务器由于遇到错误而不能完成该请求)

常见的有:

200 OK:服务器成功返回用户请求的数据

201:用户新建或修改数据成功

202:表示一个请求已经进入后台排队(异步任务)

301:删除请求数据

302:在其他地址发现了请求数据

303:建议客户访问其他URL或访问方式

304:客户端已经执行了GET,但文件未变化

400 :用户发出的请求有错误,服务器没有进行新建或修改数据的操作

401:表示用户没有权限(令牌、用户名、密码错误)

403 :表示用户得到授权(与401错误相对),但是访问被禁止

404:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的

500:服务器发生错误,用户将无法判断发出的请求是否成功。

502:服务器返回超时

7、接口测试用例如何进行设计?

答:针对输入,可按照参数类型进行设计,参数是否必填,参数之间是否存在关联,参数数据类型限制,参数数据类型自身的数据范围值限制;

针对接口处理,可按照逻辑进行用例设计;

针对输出,可根据结果进行分析设计。

8、如何分析是前端还是后端的问题?

答:检查接口,前端和后台之间是通过接口文件相互联系的,需要查看接口文件。

检查请求的数据是什么,反馈的数据又是什么。

页面可以直接F12,或者抓包查看。如果发送的数据是正确的,但是后台反馈的数据是不符合需求的,那就是后台的问题;如果前端没有请求接口或请求的时候发送数据与需求不符,那这个时候就是前端的问题了。

9、接口测试中,下游接口需要依赖上游接口的数据,该如何处理?

答:在工具中可以使用全局变量等方式将需要的数据进行传送,或者使用对响应数据进行提取,传给下游接口。

10、依赖第三方数据的接口如何进行测试?

答:可以使用fiddler进行调用接口时预设期望响应,mock返回自己设置的响应数据,最大限度的降低对第三方数据接口的依赖。

11、若请求的接口需要先登录后方可请求,如何进行接口测试?

答:请求登录口获取返回的响应头,或者响应信息中的数据,cookie,token,session等,传递给依赖登录接口的请求头中,发起请求即可。

12.接口测试怎么测?

通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。

参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,
商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。

接口安全:

1、绕过验证 300改3
2、绕过身份授权 用户改商品信息
3、参数是否加密
4、密码安全规则,密码的复杂程度校验
异常验证:
   所谓异常验证,也就是我不按照你接口文档上的要求输入参数

性能测试:
接口并发情况,如上面提到的:一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
接口响应时间,响应时间太长了,肯定需要优化,一般都是毫秒级别

13.在接口测试过程中,上下游接口有数据依赖如何处理?

用一个全局变量来处理依赖的数据,比如登录后返回token,其它接口都需要这个token,那就用全局变量来传token参数

14.依赖第三方数据的接口如何进行测试

这个标准答案是:mock
mock除了用在单元测试过程中,还有一个用途,当前端开发在开发页面的时候,需要服务端提供API接口
此时服务端没开发完成,或者说没搭建测试环境,这个时候前端开发会自己mock一个api服务端,自己给自己提供调用接口的返回数据
mock-server用途就是开发在开发的过程中,需要依赖一部分的接口,但是对方没有提供或者环境等等情况

15.当一个接口出现异常时,你是如何分析异常的

1.抓包,用fiddler工具抓包,或者浏览器上f12,app上的话,那就用fiddler设置代理,去看请求报文和返回报文了
2.查看后端日志,xhell连上服务器,查看日志

16.如何模拟弱网测试

fiddler和charles都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试

17.F12怎么查看前端错误?

F12 ---> console 会自动标记处页面错误,控制台不显示前端JSP页面错误

 

posted @ 2020-10-27 22:01  小鬼gl  阅读(404)  评论(1编辑  收藏  举报