微信陌陌如何设置代理ip
最近发现面试题热度 挺好的,不过大部分文章都只有面试题,从来都不带答案,顺手就码了点收集到的博客问题的答案
共69道,2W字,耗时两天(疯狂暗示)欢迎催更吹水,更多软件测试资源分享在我的qq群里点击下方卡片进群,输入暗号:知乎你懂我也懂
http 是超文本传输协议,信息是明文传输,Https 协议是由 SSL+Http 协议构建的可进行加
http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443;
发送出去,服务器响应 200 返回数据),POST 产生两个 TCP 数据包(对于 POST,浏览器先
5)在做数据查询时,建议用 GET 方式;而在做数据添加、修改或删除时,建议用 post 方式
即我们给服 务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会 记录任何信息。
HTTP 是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive 没能 改变这个结果。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导 致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP 协议这种特性有优点也有缺点,优点在于解放了服务器,每一次请求“点到为止”不会造成 不必要连接占用,缺点在于每次请求会传输大量重复的内容信息。
客户端与服务器进行动态 交互的 Web 应用程序出现之后,HTTP 无状态的特性严重阻碍了这些应用程序的实现,毕竟
于是, 两种用于保持 HTTP 连接状态的技术就应运而生了,一个是 Cookie,而另一个则是Session。
答:cookie 数据存放在客户的浏览器上,session 数据放在服务器上 cookie 不是很安全,别人可以分析存放在本地的 cookie 并进行 cookie 欺骗,考虑到安全 应当使用 session
session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑 到减轻服务器性能方面应当使用 cookie
单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie 可以将登陆信息等重要信息存放为 session;其他信息需要保存,可以放在 cookie
答:1xx – 信息提示(表示临时的响应微信陌陌如何设置代理ip。客户端在收到常规响应之前,准备接收一个或多个 1xx
403 Forbidden -[] :表示用户得到授权(与 401 错误相对),但是访问被禁止
404 NOT FOUND -[]:用户发出的请求针对得到是不存在的记录,服务器没有进行操作, 该操作是幂等的
③各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还 有考虑参数有互斥或关联的情况)。
并发请求相同的接口(特别为 POST 请求),接口的处理情况(如插入了相同的记录导致 数据出错,引发系统故障);
本题主要考情商,通俗来说就是忽悠能力,先唬住面试官了再说,进去了也是瞎测测,随时 做好背锅的准备,当然,你肯定不能回答面试官不测(心理 mmp,脸上笑嘻嘻),接下来就是 扯犊子时间
答:用一个全局变量来处理依赖的数据,比如登录后返回 token,其它接口都需要这个 token,
答:依赖登录状态的接口的本质上是在每次发送请求时需要带上 session 或者 cookie 才能
答:Fiddler 和 charles 都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试。具
面试官出这个题,主要是想知道你是不是真的做过接口测试,毕竟现在很多小伙伴简历经过 包装(不包装连面试机会都没有,没办法,为了生存,能理解)
安全性问题,如明文传输、返回结果含有敏感信息,没对用户身份信息做校验,没做恶意请 求拦截等;
答:先抓包,用 fiddler(charles)工具抓包,或者浏览器上 F12 调试工具;APP 上的话,那就 用 Fiddler 做代理,通过手机设置代理去看请求和返回报文;
查看后端日志,如 Linux 系统通过 xhell 连上服务器,查看接口日志,查看是否有报错信息 (命令:tail -f 日志文件);
这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就 是前端发的数据不对;
答:现在针对大量应用,普遍推崇做接口测试自动化,维护成本低、收益高。常用的工具有 许多,如 Jmeter、Robot Framework、pytest 等。
把上一个请求返回的结果传入到下一个请求的参数中,将请求的结果反射到一个类属性(使 用 setattr()函数),下一个请求去调用这个类属性
ddt :数据驱动,ddt 类装饰器,data 测试方法装饰器 unpack 解包可迭代的数据类型 普通用户,数据库,配置文件—(基础数据)
数据驱动:将维护数据与代码分离,接口调用行为一致,针对不同的参数组合驱动不同的测 试场景,减少代码冗余
发起请求:请求方法(get/post 方法进行封装—URL 的拼接(不同—参数转化为字典 拿到请求的返回值:解析返回值 code,status,msg 信息)
完成所有的自动化测试框架的设计和实现后,进行接口测试,然后集成到 jenkins,配置定时执行,生成 html 报表,查看测试通过率,查看接口的功能
浏览网页时在浏览器地址栏中输入的 URL 前面都是以开始的。HTTP 定 义了信息如何被格式化、如何被传输,以及在各种命令下服务器和浏览器所采取 的响应。
1)get 请求:Get 请求是最简单的请求方式,输入 URL 就能完成。第一步:新建一个 tab 页面
2)post 请求: Post 请求跟 Get 的区别除了请求方式不同之外, 还需要添加请求体,请求体内容多半为 Json 格式。
Jmeter:Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用 于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其 他测试领域。它可以用于测试静态和动态资源,例如静态文件、Java 小服务 程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。
右键“线程组” - “添加” - “取样器” - “HTTP 请求”, 输入“服务器名称或 IP”,对应的端口号,http 默认端口号 80,可以不写。
右键“线程组” - “添加” - “监听器” - “察看结果数”, 添加“察
2、http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等
再比如接口中会有一些公共参数,每个接口里面都存在,如果值是固定的,那我们可以把这些进行参数化记录,减少在每个接口里面书写出错的问题
再比如手机号,我传131开头的、133开头的、135开头的,如果不会参数化,就要写三个http请求,分别传这三种参数,学会了参数化,只写一个http请求就够了,以此来减少重复的工作
请求中包括:请求地址,请求方式,请求方式包括get请求和post请求,get和post的区别是get请求是在地址栏后边跟随请求参数,但是请求参数大小是有限制,不同浏览器是不同的。一般是4KB。post请求主要用于向服务器提交请求参数。post请求的参数是放到请求实体内容中的,相对get请求较为安全一些。
另外,请求中会有各种请求头信息,比如支持的数据类型,请求的来源位置,以及Cookie头等相关头信息。
还有各种响应头信息,比如设置缓存的响应头,Content-Type内容类型,设置cookie头信息。
接口测试和UI测试这两块其实是有一部分是重叠的,UI测试是通过前端写的界面,来调用接口,而接口测试是直接调接口。所以排除前端的处理的逻辑和调用的正确性,在理论上接口测试是可以覆盖所有的UI测试。但实际过程中,如果只是在接口层覆盖所有的业务流,在UI上只测试前端的逻辑,最终的结果可能会是忽视很多原有的功能点,导致了UI测试的不充分。所以存在多人分工且时间充分的时候可以尝试接口去做业务流的全覆盖,否则不要轻易尝试。
在一个甲系统增加,修改A数据后,乙系统也会相应的呈现这个改动的数据;在乙系统增加,修改B数据后,甲系统也会相应的呈现这个改动的数据;
即A部分的数据,是由甲系统来维护的,乙系统读入数据并同步;B部分的数据,是由乙系统来维护的,甲系统读取数据并同步;
在具体的操作过程中,在甲系统增加,修改A数据后,然后在乙系统查看对应的数据是否同步一致;反之亦然;
(2)乙系统接收到数据后,会存入到自己的数据库,这个存储过程是否成功?(主要是考虑到甲系统传过来的数据格式是否和乙系统的格式一致)且数据存储成功与否乙系统会返回一条信息(例如:返回1,表示数据正确传输并存储到数据库了;返回0及错误信息表示数据传输或存储出了问题)
由接口文档可知,接口至少应有请求地址、请求方法、请求参数(入参和出参)组成,部分接口有请求头header。
标头 (header):是服务器以HTTP协议传HTML资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔,一般存放cookie、token等信息
首先,它们确实都是发送到服务器里的参数,但它们是有区别的,header里存放的参数一般存放的是一些校验信息,比如cookie,它是为了校验这个请求是否有权限请求服务器,如果有,它才能请求服务器,然后把请求地址连同入参一起发送到服务器,然后服务器会根据地址和入参来返回出参。也就是说,服务器是先接受header信息进行判断该请求是否有权限请求,判断有权限后,才会接受请求地址和入参的。
比如测试用户注册功能,规定用户名为6~18个字符,包含字母(区分大小写)、数字、下划线。首先功能测试时肯定会对用户名规则进行测试时,比如输入20个字符、输入特殊字符等,但这些可能只是在前端做了校验,后端可能没做校验,如果有人通过抓包绕过前端校验直接发送到后端怎么办呢?试想一下,如果用户名和密码未在后端做校验,而有人又绕过前端校验的话,那用户名和密码不就可以随便输了吗?如果是登录可能会通过SQL注入等手段来随意登录,甚至可以获取管理员权限,那这样不是很恐怖?
其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。所以上面这些面试的时候你说出来就行了。
1、2XX 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
3、4XX 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
4、5xx: 代表服务器有异常,500代表服务器内部异常;503服务器当前不能处理客户端的请求,一段时间后可能恢复正常;504代表服务器端超时,没返回结果。
②、参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,商品id是必传的,这样就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。
1、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?
2、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
3、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。
测试的数据是不能写死到代码里面的,这个是原则问题,也是写代码的大 忌(你要是回答写在代码里面,估计就是回去等通知了)
测试数据放到.py的开头,这种其实很方便,对于少量的,固定不变的数 据其实是可以放的,但是面试时候,千万不能这样说,面试官喜欢装逼的 方法
1.对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写的配 置文件里(如 ini)
3.对于一个接口有多组测试的参数,可以参数化,数据放 yaml,text,json,excel 都可以
4.对于可以反复使用的数据,比如订单的各种状态需要造数据的情况,可以放到 数据库,每次数据初始化,用完后再清理
6.对于全部是独立的接口项目,可以用数据驱动方式,用 excel/csv 管理测试的 接口数据
7.对于少量的静态数据,比如一个接口的测试数据,也就 2-3 组,可以写到 py 脚本的开头,十年八年都不会变更的
pytest 里面还有一个更加强大的功能,获得多个参数化参数的所有组合,可以 堆叠参数化装饰器
这个很容易,不同的接口封装成不同的函数或方法,需要的数据 return 出来, 用一个中间变量 a 去接受,后面的接口传 a 就可以了
登录接口依赖 token 的,可以先登录后,token 存到一个 yaml 或者 json,或者 ini 的配置文件里面,后面所有的请求去拿这个数据就可以全局使用了
moco 服务搭建需要自己能够熟练掌握,面试会问你具体如何搭建 ,如何模拟返 回的数据,是用的什么格式,如何请求的63.不可逆的操作,如何处理,比如删除一个订单这种接口如何测试此题考的是造数据的能力,接口的请求数据,很多都是需要依赖前面一个状态的 比如工作流这种,流向不同的人状态不一样,操作权限不一样,测试的时候,每 种状态都要测到,就需要自己会造数据了。平常手工测试造数据,直接在数据库改字段状态。那么自动化也是一样,造数据 可以用 python 连数据库了,做增删改查的操作 测试用例前置操作,setUp 做数据准备 后置操作,tearDown 做数据清理
其它的就是运行出报告、代码管理(git)、运行策略和持续集成 jenkins 相关 了,这个所以的自动化但是一样的,后面会单独讲一篇 jenkins 持续集成相关
分别用 http 还有 https 登录试试。如果用 https 可以正常登录,地址栏显示一把锁头,那么这个网站是
有部署 SSL 的。如果 http 和 https 都能够正常登录,进一步说明该网站没有设置强制 https 登录,或者说没
有设置 http 链接自动跳转 https 链接;相反如果用 http 登录,结果跳转到 https 页面,说明网站部署了 SSL,
解释的来源,设置是否忽略服务证书错误(这些操作做完之后,在浏览器方位 IP:8888,安装证书就可以在
进入 Tools-Options-Connections,保证打开启抓取 HTTPS 连接,然后默认端口按需求是或否需要修改, 然后点选允许远程计算机连接选项
还包括软件学习路线份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试线软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..