面试总结

1. 数据库增删改查

基本上查询考的比较多,也有考察新增,修改,删除的,极个别的会给出表结构,字段要求,让你据此建表以及临时表

查询语句
主要考察子查询,聚合函数,多表查询,分组,可参考下面链接(sql50题)

sql50题
插入语句
insert into [table] ([column],[column]) values(?,?)
1
删除语句
delete from [table] where column = ?
1
修改语句
update [table] set column = ? where column = ?

web测试与app测试的不同点

(1)系统架构方面
web项目:一般都是b/s架构,基于浏览器的
app项目:则是c/s架构的,必须要有客户端,用户需要安装客户端
web测试只要更新了服务器端,客户端就会同步更新,app项目则需要客户端和服务器端都更新
(2)性能方面
web页面主要会关注响应时间,app还需关注流量,电量,CPU,GPU等
(3)兼容方面:web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统方面的兼容
app测试则要看分辨率,屏幕尺寸,还要看设备系统
web测试不用考虑安装卸载,app还需测试安装,更新下载,还有专项测试,如网络适配性
【https://blog.csdn.net/parker007/article/details/82981933】

http 和https的区别

HTTP协议以明文方式发送内容,不提供任何方式的数据加密。因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTPS和HTTP的主要区别
1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

加粗样式水杯,椅子,笔啥的怎么测试

转载于:https://www.cnblogs.com/shuang198926/p/3928057.html

登录、支付功能点测试

登录界面功能测试点
  1)空白
  用户名和密码均为空/用户名填写,密码为空/用户名为空,密码填写
  2)错误校验
  输入错误的用户名和密码/用户名错误密码正确/用户名正确密码错误
  3)大小写区分(如:用户名和密码都为小写时)
  用户名和密码均大写/用户名大写,密码小写/用户名小写,密码大写
  4)存在空格
  合法的用户名或密码前插入空格/合法的用户名或密码中间插入空格/合法的用户名或密码后插入空格
  5)已注销的用户名登录
  6)已禁止/锁住的用户名登录
  7)长短校验

在给定的用户名和密码规则下,超出或少于指定的长度登录(测试临界值)
  8)非法字符校验(如@#¥%等字符)
  9)多次错误登录,是否锁住
  用户名或者密码在连续输错3次或者5次的情况下,账号要被锁定
  10)是否支持tab和enter键
  输入框是否支持tab键或支持Enter键登录
  11)多点登录/提示信息
  同一个用户不能同一时间在不同的位置登录
  12)登录是否记住用户名和密码
  13)密码明文
  14)切换用户,是否显示前一用户信息
  15)登陆后前进后退操作
  16)查看密码转码是否有规律,是否每次都是一样
  17)密码是否可以用MD5解密
  18)登录超时(经过一段时间自动退出)
  19)SQL注入
  20)跨站
  21)COOKIE注入
  22)COOKIE加密检查
  23)提交用get方法(不安全)

支付功能测试点
1)订单金额与支付金额验证(单件,多件总额)数额一直(可使用特殊金额如:0、99、99.999、44.44445等)
  2)支付优惠劵或者选择扣款验证,能正常使用
  3)未提交支付的时候能正常取消支付
  4)在未提交支付页面长时间停留再次操作需要给用户提示
  5)点击支付响应后,在单个交易周期里只响应一次
  6)订单支付失败可以重新进入支付流程
  7)用户在支付订单的时候需要再次提示用户金额以及收款方信息用户确认
  8) 如果用户发现数据不对可以返回重新提交支付
  9)用户确认付款后跳正常转到响应的支付页面(APP本身的支付页面,其他APP或者网页的交互平台。根据业务的不同进行测试)
  10)测试账户下余额不足的情况下支付失败,给出提示,但不扣款
  11)测试账户下余额足够的情况下支付成功,能给出提示和跳转,扣款成功
  12)测试账户下余额不足的情况下,取消支付。正常取消。
  13)测试账户下余额充足的情况下,取消支付。正常取消。
  14)支付成功后订单状态正常转换
  15)支付失败或者取消支付是订单状态不发生变化
  16)网络异常情况下测试即服务器正常响应了请求包,但 APP收到请求报超时。APP订单应该重新刷新状态
  17) 支付账户余额不足补足后可重新进行正常支付
【原文链接:https://blog.csdn.net/weixin_43725241/article/details/115377924】

接口测试用例的编写要点有哪些?
1)必填字段:请求参数必填项、可选项
2)合法性:输入输出合法、非法参数
3)边界:请求参数边界值等
4)容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理
5)响应数据校验:断言、数据提取传递到下一级接口…
6)逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况
7)性能:对接口模拟并发测试,逐步加压,分析瓶颈点
8)安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)

8.接口测试的步骤有哪些?
1)发送接口请求
2)测试接口获取返回值
3)断言:判断实际结果是否符合预期

接口测试的必要性就体现出来了:
1.可以发现很多在页面上操作发现不了的bug
2.检查系统的异常处理能力
3.检查系统的安全性、稳定性
4.前端随便变,接口测好了,后端不用变
5.可以测试并发情况,一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
6.可以修改请求参数,突破前端页面输入限制(如金额)

面试题5:没有接口文档,如果做接口测试?(这是个送命题)
没有接口文档,那还能咋办,瞎测呗!一个公司的开发流程里面,如果接口文档都没有,是无法展开接口测试的,你都不知道这个接口干什么的,也不知道具体每个字段代表什么意思,那还测啥呢?
–当然,你肯定不能回答面试官不测(心理mmp,脸上笑嘻嘻),接下来就是扯犊子时间
1.没有接口文档,那就需要先跟开发沟通,然后整理接口文档(本来是开发写的,没办法,为了唬住面试官,先说自己整理了)
2.没有接口文档,可以抓包看接口请求参数,然后不懂的跟开发沟通
本题主要靠情商,通俗来说就是忽悠能力,先唬住面试官了再说,进去了也是瞎测测,随时做好背锅的准备

面试题6:在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?
用一个全局变量来处理依赖的数据,比如登录后返回token,其它接口都需要这个token,那就用全局变量来传token参数

面试题7:依赖于第三方数据的接口如何进行测试?
这个标准答案是:mock

接着面试官会问你,如果mock的,然后你就顺着坑继续挖,搭建mock服务,参考这篇【https://www.cnblogs.com/yoyoketang/p/9348552.html】

面试题8:当一个接口出现异常时候,你是如何分析异常的?
1.抓包,用fiddler工具抓包,或者浏览器上f12,app上的话,那就用fiddler设置代理,去看请求报文和返回报文了
2.查看后端日志,xhell连上服务器,查看日志

面试题9:如何模拟弱网测试
fiddler和charles都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试

面试题10:如何分析一个bug是前端还是后端的?

平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug
这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯

################################################

抓包工具Charles使用技巧

本文链接:https://blog.csdn.net/lineuman/article/details/82589729
————————————————

面试题之–Charles抓包原理

本文链接:https://blog.csdn.net/ZhaiAlan/article/details/105973034
————————————————
抓不到请求的原因
1.1 抓不到app的请求,可能代理或者端口配置不正确
1.2 配置问题导致: a. 添加了域名过滤 b.关闭了代理功能 c.设置了process
进行弱网测试
如何修改请求参数
################################################

postman 基本知识

在接口测试中关联是什么含义?如何用postman设置关联?
关联就是把上一个接口返回值的部分截取出来,作为下一个接口的参数,能让接口串联运行
在postman中设置关联的步骤如下:

  1. 先通过正则表达式提取的方式或json取值的方式把下一个接口需要的信息从上一个接口截取出来
  2. 使用设置全局变量的代码把取出来的值保存到全局变量
  3. 在下一个接口中,使用{{全局变量}}代替要替换的静态值

19、postman参数化有哪几种方式?
内建变量、pre-scripts编写js脚本、批量运行时导入csv或json格式的文件

  1. 环境变量分为:环境变量与全局变量,
    使用变量的格式为{{变量名}}调 用变量的值。
    2.断言验证
    设置tests脚本,在脚本编辑窗口,使用脚本模板,可以断言和参数化
    3.Postman提取返回值
    如果响应结果是json格式,
    //保存响应结果json
    var jsonData = JSON.parse(responseBody);
    //将响应结果中的access_token保存为全局变量hb_access_token
    //最新版本pm环境变量设置使用方法
    pm.globals.set(“hb_access_token”,jsonData.access_token);
    4.设置环境变量
    postman.setEnvironmentVariable(“key”, “value”);
    pm.environment.get(“key”);//postman 5.0以上版本设置环境变量的方法
    pm.environment.unset(“variable_key”); //清除环境变量

5.检测JSON中的某个值是否等于预期的值,判断是用3个=号
var data = JSON.parse(responseBody); tests[“Your test name”] = data.value === 100; //如果通过postman里面会有绿色标识

====================================================
判断json中嵌套一层json里的断言:
var jsonData = JSON.parse(responseBody);
tests[“Check respose status value”] = jsonData.status === 1;
pm.test(“判断data里面第一个json数据的id为1”, function () {
var jsonData = pm.response.json();
pm.expect(jsonData.data[0].id).to.eql(1);
});
################################################

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值