首页 > 编程知识 正文

python面试编程题,python自动化面试题

时间:2023-05-05 20:22:43 阅读:129049 作者:3998

前言:以下是整理好的界面自动化测试相关面试问题和见解。 如果有错误的地方欢迎留言区!

1、你的理解是,软件界面是什么? 答案:

程序中具体在不同模块之间传输或接收和处理数据的类或函数。

2、HTTP和HTTPS协议有什么区别? 答案:

https协议需要向认证授权机构(ca )申请证书,一般免费证书较少,因此需要一定的费用

http是超文本传输协议,信息是明文传输,Https协议是基于SSL Http协议构建的可加密传输、认证的网络协议,比http协议安全;

http和https使用完全不同的连接方式,使用的端口也不同。 前者是80,后者是443。

3、HTTPS在哪个楼层? 答案:

HTTPS位于APP应用层。

4、获取和开机自检有什么区别? a )开机自检和GET都向服务器提交数据,并从服务器检索数据。

区别:

传输方式: get通过地址栏传输,post通过消息传输传输的长度: get参数有长度限制(url长度限制),而post生成一个TCP数据包),对于get方式的请求,浏览器为http HHP 服务器响应200返回数据) ) post是两个TCP分组) )的浏览器先发送header,服务器响应100 continue,浏览器发送data,服务器响应200 ok发送数据添加、修改或删除数据时,是否建议使用开机自检方式5或一般开机自检方式提交数据? 答案:

主要有四种方式。 应用程序/x-www-form-urlencoded、multipart/form-data、应用程序/JSON、文本/XML等。

6、什么是Http协议无状态协议? 如何解决HTTP协议无状态协议:

无状态是指协议对事务没有记忆能力,服务器不知道客户端的状态。 也就是说,我们向服务器发送HTTP请求后,服务器会根据请求发送数据,但发送后不会记录任何内容。 HTTP是无状态协议,这意味着每个请求都是独立的,Keep-Alive无法改变这一结果。 没有状态意味着,如果后续处理需要以前的信息,则需要重新发送,并且每个连接传输的数据量可能会增加。 另一方面,如果服务器不需要以前的信息,则响应迅速。 HTTP协议这一特性有优点也有缺点。 优点是释放服务器,不会在每个请求的“时间点”上占用不必要的连接。 缺点是每个请求都会传输大量重复的内容信息。 客户端与服务器动态交互的web APP应用出现后,HTTP无状态的特性严重阻碍了这些APP应用的实现。 毕竟对话只是前启后的,简单的购物车程序也需要知道用户之前选择了什么样的商品。 因此,产生了用于维持HTTP连接状态的两种技术。 一个是Cookie,另一个是Session。

7、cookie和session有什么区别? 答案:

cookie数据存储在客户的浏览器中,会话数据存储在服务器上

饼干不安全。 其他人可以分析本地存储的饼干,进行饼干诈骗。 为了安全,必须使用session

会话在服务器上保存一段时间。 访问增加时,服务器的性能相对占用。 为了降低服务器性能,必须使用cookie

存储在一个cookie中的数据不能超过4K。 许多浏览器限制在一个站点上最多存储20个cookie

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

8、请求界面常见返回状态代码? 答案:

1xx信息提示(提供初步响应。 客户端在收到正常响应之前,准备接收一个或多个1xx响应)

2xx成功(表示服务器成功接受客户端请求) )

3xx-重定向(客户端浏览器需要执行更多操作才能实现请求。 例如,浏览器可能需要请求服务器上的不同页面,或通过代理服务器重复请求。)

4xx-客户端错误(发送错误,客户端有问题。 例如,请求客户端不存在的页面,而客户端没有提供有效的身份证件凭据。)

5xx-服务器错误(服务器无法完成请求,因为发生了错误)。

常见的返回代码如下:

200 OK - [GET] :服务器正常返回用户请求的数据

201 CREATED - [POST/PUT/PATCH] :用户成功创建或修改了新数据

202 Aceepted - [] :指示请求在后台队列中(异步任务)

204否内容- [ delete ] :用户成功删除数据

400 invalid request-[ post/put/patch ] :用户请求错误,服务器没有创建或修改新数据

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

403 Forbidden -[] :表示用户已被允许,但禁止访问(针对401错误)。

404非基础- [ ] :

用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功

9、什么是DNS?

答:
DNS 是域名系统 (Domain Name System),DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的IP,但有了DNS的处理,你只需要记住对应网站的域名,即网址就可以了。

10、请问你们公司是如何做接口测试的?

答:
接口测试实际跟一般测试不同就是测试用例的设计部分。
①获取接口规范。
②设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑盒用例那一套)。
③各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还有考虑参数有互斥或关联的情况)。
④接口返回值各种验证(符合接口文档需求)
⑤了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定/…)
⑥接口能并发执行吗、安全吗,性能满足要求吗?
⑦采用工具或者自写代码来验证。
⑧发现问题跟功能测试一样,该报bug报bug,该跟踪状态的跟踪状态。

11、怎么设计接口测试用例?

答:
通常,设计接口测试用例需要考虑以下几个方面:
①是否满足前提条件
有些接口需要满足前提,才可成功获取数据。常见的,需要登录Token
逆向用例:针对是否满足前置条件(假设为n个条件),设计0~n条用例
②是否携带默认值参数
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其他不填写,设计1条用例
③业务规则、功能需求
这里根据时间情况,结合接口参数说明,可能需要设计N条正向用例和逆向用例
④参数是否必填
逆向用例:针对每个必填参数,都设计1条参数值为空的逆向用例
⑤参数之间是否存在关联
有些参数彼此之间存在相互制约的关系
⑥参数数据类型限制
逆向用例:针对每个参数都设计1条参数值类型不符的逆向用例
⑦参数数据类型自身的数据范围值限制
正向用例:针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例

12、你做接口测试,测什么?

答:
可用性测试
根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果:

接口功能是否正确实现;
返回值测试 - 返回值除了内容要正确,类型也要正确,保证调用方能够正确地解析;
参数值边界值、等价类测试;
错误和异常处理测试

输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应;
输入错误的参数,接口能正确处理,并按预期响应;
多输入、少输入参数,接口能正确处理,且按预期响应;
错误传输数据格式(如json格式写成form格式)测试;
安全性测试,主要指传输数据的安全性:

敏感数据(如密码、秘钥)等是否加密传输;
返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等;
接口是否对传入的数据做安全校验,如身份ID加token类似校验;
接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃);
性能测试,如接口的响应时间、并发处理能力、压测处理情况:

并发请求相同的接口(特别为POST请求),接口的处理情况(如插入了相同的记录导致数据出错,引发系统故障);
接口响应时长在用户可忍受的范围内;
对于请求量大的接口做压测,确定最大的瓶颈点是否满足当前业务需要;

13、平常用什么工具测接口的?

答:常用http协议接口测试工具,如:postman、fiddler、jmeter;webService接口用SoapUI、jmeter等。

14、没有接口文档,如果做接口测试?

本题主要考情商,通俗来说就是忽悠能力,先唬住面试官了再说,进去了也是瞎测测,随时做好背锅的准备,当然,你肯定不能回答面试官不测(心理mmp,脸上笑嘻嘻),接下来就是扯犊子时间
答:用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间集中寻求开发解答。(常用抓包工具Fiddler、Charles等)

15、在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?

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

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

答:mock
接着面试官会问你,如果mock的,然后你就顺着坑继续挖,搭建mock服务,参考这篇http://www.51ste.com/share/det-485.html

17、接口测试中,依赖登录状态的接口如何测试?

答:依赖登录状态的接口的本质上是在每次发送请求时需要带上session或者cookie才能发送成功,在构建POST请求时添加必要的session或者cookie

18、如何模拟弱网做测试?

答:Fiddler和charles都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试。具体可以看《几种弱网模拟方法,总有一种适合你》

19、你平常做接口测试的过程中发现过哪些bug?

面试官出这个题,主要是想知道你是不是真的做过接口测试,毕竟现在很多小伙伴简历经过包装(不包装连面试机会都没有,没办法,为了生存,能理解)
答:
常规错误,接口没实现,没按约定返回结果,边界值处理出错等。
输入异常值(空值、特殊字符、超过约定长度等),接口抛错,没做封装处理;
输入错误的参数、多输入、少输入参数,接口可能出现的错误;
安全性问题,如明文传输、返回结果含有敏感信息,没对用户身份信息做校验,没做恶意请求拦截等;
性能问题,如接口并发插入多条相同操作,响应时间过长,接口压测出现瓶颈等;

20、当一个接口出现异常时候,你是如何分析异常的?

答:
先抓包,用fiddler(charles)工具抓包,或者浏览器上F12调试工具;APP上的话,那就用Fiddler做代理,通过手机设置代理去看请求和返回报文;

查看后端日志,如Linux系统通过xhell连上服务器,查看接口日志,查看是否有报错信息(命令:tail -f 日志文件);

21、如何分析一个bug是前端还是后端的?

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

22、你们做接口测试自动化吗?

答:现在针对大量应用,普遍推崇做接口测试自动化,维护成本低、收益高。常用的工具有许多,如Jmeter、Robot Framework、pytest等。



愿你我相遇,皆有所获! 点这里q-q-u-n: 领取一份软件测试工程师面试宝典文档资料。以及相对应的学习资料教程免费分享!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。