前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DING,接口自动化测试面试题待查收!

DING,接口自动化测试面试题待查收!

作者头像
ITester软件测试小栈
发布2021-07-15 16:07:41
5840
发布2021-07-15 16:07:41
举报
文章被收录于专栏:全栈测试

Hi,大家好。今天给大家分享一波接口自动化面试题,如果想要获取更多面试题,可以在后台回复“面试顺利”。

Python基础

1

列表反转有哪几种方式?

第一种:通过倒序切片反转,步长是 -1;

第二种,使用reversed 函数 ,可以实现反转;

reversed返回的结果是一个反转的迭代器,我们需要对其进行 list 转换。

第三种,使用sorted函数 ,可以实现反转;

2

列表推导式是什么?

推导式 是 Python 中用来生成数据的一种高级用法,Python 不仅有列表推导时,还有字典推导式、集合推导式、生成器表达式;它的语法都是一样的,都是通过 for 循环来创建数据的一种简写的方式。

推导式它将循环和条件判断结合,从而避免语法冗长的代码,提高代码运行效率。

1)语法格式

第一种语法:

代码语言:javascript
复制
[exp1 for x in data if condition]

第二种语法:

代码语言:javascript
复制
[exp1 if condition else exp2 for x in data]

2)实战练习

实例1:返回1-10的所有偶数乘以2的结果。

输出结果如下:

代码语言:javascript
复制
[4, 8, 12, 16, 20]

实例2:返回1-10的所有偶数乘以2,奇数乘以3的结果。

输出结果如下:

代码语言:javascript
复制
[3, 4, 9, 8, 15, 12, 21, 16, 27, 20]

3)执行效率测试

上文有介绍说列表推导式可以提高代码执行效率,接下来我们通过例子来证实下这个结论。

①先用我们常用的for循环统计时间。

输出结果:

代码语言:javascript
复制
for循环总耗时:0.18744373321533203秒

② 用列表推导式统计时间。

输出结果:

代码语言:javascript
复制
列表推导式总耗时:0.09278202056884766秒

从for循环和列表推导式耗时结果来看,列表推导式执行效率是优于常规的for循环的。

3

什么是闭包函数?

1)什么是闭包?

在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。

2)闭包的构成条件?

代码语言:javascript
复制
必须有内嵌函数
内嵌函数必须引用外部变量
外部函数必须返回内嵌函数

3)闭包的使用

Python装饰器就是闭包概念的一种体现,如下示范很典型的闭包场景,单例模式的装饰器。

代码语言:javascript
复制
from functools import wraps

def Singleton(cls):
    instance = {}
    @wraps(cls)
    def wrapper(*args, **kwargs):
        if cls not in instance:
            instance[cls] = cls(*args, **kwargs)
        return instance[cls]
    return wrapper

接下来写出一个计时器装饰器,记录函数的执行时间。

4

json.loads和json.dumps的区别?

1)含义

代码语言:javascript
复制
# 微信公众号:ITester软件测试小栈
json的dumps方法和loads方法,可实现数据的序列化和反序列化。
json.dumps: 将python对象转换为json格式数据。
json.loads: 将json格式数据转化为python对象。

2)应用场景

① json.dumps

代码如下:字典转为字符串。

输出内容如下:

代码语言:javascript
复制
<class 'dict'>
<class 'str'>
{"name": "ITester软件测试小栈", "author": "coco", "age": "18"}

② json.loads

这里我们用之前写过的接口自动化文章为例,从Excel读取数据后,通过数据驱动,打断点后发现读取的参数为字符串类型,所以我们通过 json.loads转化下格式。

有兴趣的小伙伴,可以点击链接查看历史文章:Python接口自动化之数据驱动

接口测试相关

1

什么项目适合做自动化测试?

适合做自动化测试的项目,简答来说,就是不变的、重复的、规范的。具体来说,满足以下几个方面:

  • 需求变化不太频繁;
  • 项目周期要足够长;
  • 脚本可以重复使用:在一些典型的场景,比如说 “冒烟测试、回归测试” 的地方就是经常使用自动化测试;
  • 被测试的软件是否规范:是否有需求文档、规范的接口文档、是否有原型图、接口设计是否比较规范;
  • 手工测试是无法完成的:比如说需要性能测试,通过自动化测试的成本不是特别高;
  • 测试团队成员具有一定的编程能力。

2

你是怎么开展自动化测试工作的?

实际工作中开展自动化测试,我主要从以下几个方面开展:

  • 首先根据产品的业务特性整理自动化的一个功能模板;
  • 其次,我们会根据项目情况以及人员现状,来制定自动化测试计划;
  • 第三,我们会从功能用例当中挑选合适的用例来转成自动化用例;
  • 第四,框架选型,选择编程语言或者工具来实现,我们选择的是 Python 语言来实现的;
  • 第五,自动化测试的脚本开发;
  • 第六,根据项目来制定自动化执行方案;
  • 第七,输出测试报告,以及自动化测试成果的汇报,跟进后期的维护;

3

接口测试用例的编写要点有哪些?

  • 必填字段:请求参数必填项、可选项;
  • 合法性:输入输出合法、非法参数;
  • 边界:请求参数边界值等;
  • 容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理;
  • 响应数据校验:断言、数据提取传递到下一级接口;
  • 逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况;
  • 性能:对接口模拟并发测试,逐步加压,分析瓶颈点;
  • 安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑。

4

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

常规错误:接口没实现,没按约定返回结果,边界值处理出错等;输入异常值(空值、特殊字符、超过约定长度等),接口抛错,没做封装处理;输入错误的参数、多输入、少输入参数; 接口可能出现的错误:安全性问题,如明文传输、返回结果含有敏感信息,没对用户身份信息做校验,没做恶意请 求拦截等; 性能问题:如接口并发插入多条相同操作,响应时间过长,接口压测出现瓶颈等。

5

你所知道的接口安全性方面的测试?

接口的安全测试主要有以下几个方面:

  • 接口对于请求参数篡改的预防:引入签名、参数MD5加密等;
  • 接口身份认证存在的漏洞:cookie仿冒、session劫持、平行和垂直越权;
  • 完善接口的防刷机制:比如暴力破解短信验证码、找回密码功能的枚举破解安全问题;
  • 竞争条件—利用线程并发漏洞:超过限制下单、同时申请多笔退款;
  • 注入类攻击:sql注入、sqlmap 接口注入检查;
  • 数据保护:检查请求及响应是否包含敏感信息;
  • 安全日志,管理操作需要记录日志。

以上

That‘s all

更多系列文章

敬请期待


ITester软件测试小栈(ID:ITestingA),专注于软件测试技术和宝藏干货分享,每周准时更新原创技术文章,每月不定期赠送技术书籍,愿我们在更高处相逢。喜欢记得星标⭐我,每周及时获得最新推送,第三方转载请注明出处。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ITester软件测试小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档