python自动化面试题及答案,python简单编程面试题

  python自动化面试题及答案,python简单编程面试题

  以下是经过整理的与接口自动化测试相关的面试问题和观点。如有错误,欢迎留言区!

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

  程序中的一个类或函数,在不同的模块之间传输或接收并处理数据。

  2.HTTP和HTTPS协议有什么区别?回答:

  Https协议需要向证书颁发机构(ca)申请证书,一般免费证书很少,所以需要一定的费用。

  Http是一种超文本传输协议,信息以纯文本形式传输。Https是基于SSL Http协议的加密传输和认证网络协议,比Http协议更安全。

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

  3.HTTPS在哪一层?回答:

  HTTPS位于应用程序应用层。

  4.收购和岗位的区别?a)向服务器提交数据和从服务器检索数据。

  差异:

  传输方式:get通过地址栏传输,post的长度通过消息传输:get参数有长度限制(url长度限制),post生成一个TCP数据包)。对于get模式下的请求,浏览器用http HHP server response 200返回数据))post是两个TCP包))浏览器先发送头,当服务器响应100 continue时,浏览器发送数据,服务器响应200 ok发送数据,添加、修改、删除数据时,建议用POST 5还是通用POST提交数据?回答:

  主要有四种方式。application/x-www-form-urlencoded、multipart/form-data、application /JSON、text /XML等。

  6.什么是Http协议无状态协议?如何解决HTTP协议的无状态协议;

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

  7.cookie和session有什么区别?回答:

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

  饼干不安全。其他人可以分析本地存储的cookie并实施cookie欺诈。为了安全起见,必须使用会话。

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

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

  您可以将登录信息等重要信息保存为会话;其他信息需要保存,可以放入cookie中。

  8.请求接口的常见返回状态代码是什么?回答:

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

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

  3xx-重定向(客户端浏览器需要做更多的工作来完成请求。例如,浏览器可能需要请求服务器上的不同页面,或者通过代理服务器重复请求。)

  4xx-客户端错误(发送错误,客户端有问题。例如,请求一个客户端不存在的页面,但是客户端没有提供有效的id凭证。)

  5xx-服务器错误(由于出现错误,服务器无法完成请求)。

  的常见返回代码如下:

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

  01created-[post/put/patch]:用户成功创建或修改了新数据。

  02 accepted-[]:表示请求在后台队列中(异步任务)

  04无内容-[删除]:用户成功删除数据。

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

  41未授权-[]:表示用户没有权限(错误的令牌、用户名和密码)

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

  44非基本-[]:

  用户的请求是为了获取一条不存在的记录,服务器不操作,这是幂等的。

  46不可接受-[GET]:用户请求的格式不可用(例如,用户请求JSON格式,但只有XML格式)

  00内部服务器错误-[*]:服务器出现错误,用户将无法判断发出的请求是否成功。

  9.什么是DNS?答:

  DNS是域名系统。DNS用于域名解析。你在线输入网址后,它会将其转换成IP,然后访问对方服务器。不是,你要去百度就得记住百度的IP,但是有了DNS处理,你只需要记住对应网站的域名,也就是网址。

  10.你们公司是怎么做接口测试的?答:

  接口测试实际上是测试用例的设计部分,不同于一般的测试。

  获取接口规范。

  设计接口测试功能用例(主要从用户角度看接口是否能满足业务需求,用例设计就是黑盒用例)。

  各种参数的验证(正常情况下,异常情况包括输入参数数量和类型不正确,可选/必选,考虑参数互斥或相关)。

  接口返回值的各种验证(满足接口文件要求)

  理解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/决策/…)

  接口是否可以并发执行,是否安全,性能是否满足要求?

  使用工具或自编代码验证。

  发现问题时,与功能测试相同。报纸报道bug,跟踪状态的跟踪状态。

  11.如何设计界面测试用例?答:

  通常,在设计接口测试用例时,需要考虑以下几个方面:

  前提条件是否满足。

  有些接口需要满足前提条件才能成功获取数据。常见的,需要登录令牌。

  逆向用例:根据前提条件(假设N个条件)是否满足,设计0~n个用例。

  是否携带默认参数?

  前向用例:所有带有默认值的参数都没有被填充,也没有被转移到参数中。所有必需的参数都正确填写,并且具有现有的“常规”值,其他参数没有填写。设计了一个用例。

  业务规则和功能需求

  这里根据时间情况和接口参数,可能需要设计N个正向用例,反向用例。

  参数是必需的吗?

  反向用例:对于每个必需的参数,设计一个具有空参数值的反向用例。

  参数之间有关联吗?

  有些参数是相互制约的。

  参数数据类型限制

  反向用例:为每个值类型不匹配的参数设计一个反向用例。

  参数数据类型本身的数据范围值的限制

  正向用例:对于所有参数,设计一个正向用例,其中每个参数的参数值都是数据范围内的最大值。

  12.你做界面测试。你测试什么?答:

  可用性测试

  按照约定的协议、方法、格式内容,向接口传输数据,处理后返回预期结果:

  接口是否正确实现;

  返回值测试——返回值在内容和类型上要正确,以保证调用者能够正确解析;

  参数边界值和等价类检验;

  和错误处理测试。

  输入异常值(空值、特殊字符、超出约定长度等。),并且接口能够正确处理它们并按预期响应;

  如果输入了错误的参数,界面可以正确处理,并按预期响应;

  输入或多或少的参数,界面能正确处理并按预期响应;

  错误数据格式测试(比如用表单格式写的json格式);

  安全测试主要指数据传输的安全性:

  敏感数据(如密码和密钥)是否加密;

  返回数据是否包含敏感数据,如用户密码、完整的用户银行帐户信息等。

  接口是否对传入数据进行安全检查,如ID加令牌;

  接口是否防止恶意请求(如大量伪造请求接口导致服务器崩溃);

  性能测试,如接口的响应时间、并发处理能力和压力测试处理;

  并发请求同一个接口(尤其是POST请求),以及接口的处理(比如插入同一个记录,导致数据错误和系统故障);

  界面的响应时间在用户可容忍的范围内;

  对请求量大的接口做压力测试,判断最大瓶颈是否满足当前业务需求;

  13.你通常用什么工具来测试接口?答:常用的http协议接口测试工具,如postman、fiddler、jmeter;web界面使用SoapUI、jmeter等。

  14.如果没有接口文档,做接口测试?这个问题主要考情商,通俗点说就是忽悠的能力。先忽悠一下面试官。如果进去了,也是盲测。做好随时拿锅回去的准备。当然你肯定回答不了面试官的意外(心理mmp,笑脸),然后就该拉小腿了。

  回答:用抓包工具抓取界面,然后针对性的测试;如果接口字段信息不清楚,找时间集中寻求开发解决方案。(提琴手、查尔斯等。常用来抓包)

  15.在手动接口测试或自动接口测试过程中,如何处理上下游接口的数据依赖?答:使用全局变量处理依赖数据,比如登录后返回token。其他接口需要这个令牌,所以使用全局变量来传递令牌参数。

  16.如何测试依赖第三方数据的接口?甲:嘲笑

  然后面试官会问你是不是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 log文件);

  21.如何分析一个bug是前端还是后端?答:

  提到bug,前端开发和后端开发总是扯皮,互不承认是对方的bug。

  这种情况很好判断。首先,抓取数据包并查看请求消息。查看接口文档,看看请求消息是否有问题。如果有问题,是前端发的数据不对。

  请求消息没有问题,所以看看返回消息,返回的数据是

  22.你做界面测试自动化吗?答:现在对于大量的应用,广泛提倡接口测试的自动化,维护成本低,利润高。常用的工具有很多,比如Jmeter,Robot Framework,pytest等。

  愿你我相遇,有所得!在这里,点击q-q-u-n:获得一份软件测试工程师面试书文档的副本。并且相应的学习资料和教程都是免费分享的!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: