接口自动化-接口自动化测试框架梳理

自动化测试框架梳理

框架的意义:可读性,可维护性,可扩展性

1、数据与代码分离,(数据驱动)==数据驱动框架==
	例如:参数不一样,响应不一样
2、结构分层(数据层,用例层,逻辑性)
	逻辑层:公用的方法,封装起来,避免用例层的代码冗余
	数据层:例如,设计Excel,excel读取,参数化替换等
	用例层:存放测试用例

好处

1、手工测试用例与自动用例完美结合,避免重复工作
2、配置灵活,根据需要快速选择执行用例/切换测试环境
3、常用功能封装,逻辑清晰,易于维护(逻辑层封装)
4、统一执行入口,管理测试用例集(使用unittest,run.py)例如:使用discover来模糊查询测试用例
5、持续集成(git),定时构建(jenkins),快速反馈

使用到的技术框架

1、语言:python
2、测试框架:unittest(assertEqual,assertTure,assertFalse)
3、接口调用:requests(API非常简洁)
4、数据驱动:ddt(装饰器:ddt类,unpack测试方法装饰器解包时候,data测试方法装饰器,可迭代的数据类型)
	注:普通用户,管理用户,数据库,配置文件---基础数据
5、数据管理:openpyxl(excel,CSV,json,yaml,txt)
6、数据库交互:pymysql ---根据数据库选择相应的第三方模块来完成
7、数据格式的转换:eval,json
8、日志处理:logging ---清晰的执行过程,快速定位问题
9、持续集成:Jenkins(通过插件HTML Publisher/git/Email Extension)进行自动构建,生成HTML,发送邮件

一些常见的面试题

get和post的区别?

	GET后退按钮/刷新无害,POST数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
	GET书签可收藏,POST为书签不可收藏。
	GET能被缓存,POST不能缓存 。
	GET编码类型application/x-www-form-url,POST编码类型encodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
	GET历史参数保留在浏览器历史中。POST参数不会保存在浏览器历史中。
	GET对数据长度有限制,当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。POST无限制。
	GET只允许 ASCII 字符。POST没有限制。也允许二进制数据。与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !
	POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。GET的数据在 URL 中对所有人都是可见的。
	POST的数据不会显示在 URL 中。 

post请求的四种参数形式是什么?

application/x-www-form-urlencoded
multipart/form-data
application/json
text/xml

http状态码 302,403,503分别代表什么?

302 临时性重定向,该状态码表示请求的资源已经分配了新的URL,希望用户本次能使用新的URL
403 服务器理解请求客户端的请求,但是拒绝执行此请求
503  服务器目前无法使用

公司有用到第三方服务,出了问题,打电话给第三方,第三方不承认,这时候日志又显示不到错误,应该怎么处理

单独调用第三方服务,查看返回结果;
引入mock机制,假如正常返回的情况下,测试我们的系统是否存在问题;
建议开发增加日志,详细记录调用第三方接口的过程,记录调用前接口入参,返参等信息;

接口自动化中的关联怎么处理

将请求返回的结果反射到类属性中,使用setattr()函数,下个请求调用这个类

自动化测试怎么校验结果

使用断言,预期结果值和实际结果值进行对比;

自动化使用的测试框架是什么?简述自动化框架的设计、维护?

自动化使用的测试框架:
语言:python
测试框架:unittest(assertEqual,assertTure,assertFalse)
接口调用:requests(API非常简洁)
数据驱动:ddt(装饰器:ddt类,unpack测试方法装饰器解包时候,data测试方法装饰器,可迭代的数据类型)
注:普通用户,管理用户,数据库,配置文件---基础数据
数据管理:openpyxl(excel,CSV,json,yaml,txt)
数据库交互:pymysql ---根据数据库选择相应的第三方模块来完成
数据格式的转换:eval,json
日志处理:logging ---清晰的执行过程,快速定位问题
持续集成:Jenkins(通过插件HTML Publisher/git/Email Extension)进行自动构建,生成HTML,发送邮件

自动化框架的设计、维护:
数据与代码分离,(数据驱动)==数据驱动框架==
	例如:参数不一样,响应不一样
结构分层(数据层,用例层,逻辑性)
	逻辑层:公用的方法,封装起来,避免用例层的代码冗余
	数据层:例如,设计Excel,excel读取,参数化替换等
	用例层:存放测试用例

你可能感兴趣的:(接口自动化)