**1. 你们公司是如何做接⼝测试的?**
(思路:回答测试流程,按照测试流程,结合实际工作描述接口测试内容,展现接口测试成果)
在我上家公司,⾸先针对⽤户提出的需求,展开 需求分析,由产品经理主导,出具需求⽂档。 开发⼯程师根
据需求⽂档,开始编写代码,出具api需求⽂档。接口测试人员设计功能测试点,撰写测试⽤例,在等待期间,可以熟悉⼀下需求,准备接⼝测试数据。
后端开发提供接⼝⽂档后,接⼝测试⼯程师根据接⼝⽂档,设计接⼝测试⽤例 。根据测试⽤例,展开 接⼝测
试⼯作 ,发现BUG,使⽤禅道完成提交、跟踪与管理缺陷的⼯作。
等所有测试⽤例执⾏率达到100%,发现普通等级以上的BUG都已经修复了,那么我们就可以输出接⼝测试的
报告,功能测试⼈员再根据我们输出的接⼝测试报告,进⾏功能测试。
在实际的接⼝测试⼯作当中,⽐较困难的部分是登录接⼝的验证码处理,需要授权登录。我们公司,使⽤的接⼝测试⼯具主要是Postman,使⽤到断⾔、数据关联、参数化等技术,来实现接⼝测试,
最后使⽤newman来⽣成测试报告。也了解过 jmeter⼯具 和 python + requests框架来进⾏接⼝测试。postman
⼯具有转换代码的功能,也可以把postman的界⾯ *** 作转换为对应python代码,进⾏接⼝测试。
**2. 什么时候开展接口测试?**
(1)一般功能或者接口测试有变动的时候,我们会做接口测试,在接口写完开发提交了接口文档的时候就可以开始准备测试数据了。
(2)第一次发布新版在做功能测试之前我们也会做接口测试。
**3. 接口测试框架是怎么搭建的?**
1.首先要搭建接口的测试环境,安装数据文件,包括request、pytest、pymysql、pytest-html包等
2.接着搭建基础框架,定义整个项目的目录。目录里面包括common通用工具类(数据库封装、断言封装、登录封装、读取文件、日志封装)、 config(项目的配置文件)、data(数据库文件,里面存放JSON数据)、scripts(定义测试的用例脚本,具有固定的规则,用例方法必须以test开头,py文件也要以test开头)、api(接口对象层:负责发送请求、获取响应、返回响应对象 )这里面就可以定义app端的登录接口、后台管理系统的项目上架接口、以及客户信息查询接口等。
3.框架搭建好实现api对象的封装和测试脚本的封装
(重点关注业务流程的梳理(新增、查询接口授权token的调用,数据准备文件的调用)以及数据准备的断言(common_assert,断言响应数据、状态码、 *** 作信息))
4.实现数据驱动和参数化
5.最后生成测试报告
**4. 接口之间有依赖时怎么处理?**
我测的模块中登陆,项目管理模块都会有接口依赖关系,我遇到后,使用POSTMAN,先获取上一个接口的返回数据,然后保存到全局变量,接着另外一个接口中保存的变量,从而实现关联来解决接口之间的依赖关系,其中,对上架项目的增删改查时,先获取登录接口中的令牌,然后在上架项目时,将令牌传到请求头的authoization,从而实现添加员工接口,实现接口依赖关系。
**5. http报文有哪些部分组成?**
http 请求报文由请求行、请求头、空行、请求体四个部分组成
http响应报文由响应行(协议版本号、状态码、状态消息)、响应头、空行、响应体四个部分构成
**6. http和https的区别?**
HTTP协议 是超⽂本传输协议,被⽤于在Web浏览器和⽹站服务器之间传递信息。
HTTPS(安全套接字层)传输协议,为了数据传输的安全,HTTPS在HTTP的基础上加⼊了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
区别:
1. HTTP 的URL 以http:// 开头,⽽HTTPS 的URL 以https:// 开头
2. HTTP 是不安全的明⽂传输,⽽ HTTPS 是安全的加密传输
3. HTTP 标准端⼝是80 ,⽽ HTTPS 的标准端⼝是443
4. 在OSI ⽹络模型中,HTTP⼯作于应⽤层,⽽HTTPS ⼯作在传输层
5. HTTP ⽆法验证身份,⽽依赖于SSL证书的HTTPS 可验证服务器身份
6. HTTP⽆需证书,⽽HTTPS 需要正规CA wosign 颁发的SSL证书
**7. 发送http请求时,传递参数的途径有哪些?**
URl、请求头、请求体
**8. 持续集成如何做?自动化测试多久构建一次?**
在之前的项目中,我主要负责后台管理系统的登录模块、会员信息管理模块、项目管理模块。
我们的项目主要是使用持续集成工具,Jenkins +项目管理工具git+Html report+邮件来进行持续集成。
主要是利⽤源码管理,配置拉取git仓库中的接⼝⾃动化测试代码,然后使⽤构建命令运⾏项⽬⼊⼝⽂件,从⽽实现
⾃动化测试。在这其中使⽤了构建触发器的定时构建和轮巡构建。
利⽤定时构建,每天05:00执⾏1次⾃动化测试。通过轮巡构建,检查⾃动化接⼝测试的代码有没有更新,有更新就
触发构建。触发之后,会使⽤HTML report⽣成测试报告,并发送邮件,给测试部⻔所有员⼯,和开发负责⼈。
进⾏持续集成之后,我们可以把晚上的时间也利⽤起来,进⾏⾃动化的接⼝测试⼯作,提升了测试效率。
构建频率不是固定的,⼀般每天⾄少1次。如果代码变动频繁,可以会有更多次。
**9. cookies和session的区别**
位置不同:
a) cookie数据存放在客户的浏览器上,
b) session数据放在服务器上。
安全性:
a) cookie不是很安全,别⼈可以分析存放在本地的COOKIE并进⾏COOKIE欺骗;
b) session安全性更⾼。
占⽤空间:
a) session会在⼀定时间内保存在服务器上。当访问增多,会⽐较占⽤服务器的性能
b) 考虑到减轻服务器性能⽅⾯,应当使⽤COOKIE。
⼤⼩不同
a) 单个cookie保存的数据不能超过4K,很多浏览器都限制⼀个站点最多保存20个cookie。
b) session是不限量的
**10. get和post的区别**
1. 在安全性上,GET明⽂显示参数,参数直接暴露在URL上,POST是加密存储,安全性⾼。
2. 在数据大小,GET请示的参数的数据⻓度是有限制的,⽽POST请求的数据⻓度没有限制
3. 在编码上, GET请求只⽀持utf编码,⽽POST就⽀持多种编码⽅式
4. GET请求的参数在HTTP中是通过url传递,POST请求的数据是通过请求体传递
5. ⽀持的字符类型不⼀样,GET只⽀持ASCII码数据,⽽POST⽀持多种数据类型。所以中⽂在GET请求当中,会被编码。
6. 传输速度不⼀样,GET传输速度快。
7. GET请求⽆法传递⼆进制数据到服务器,⽽POST可以
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)