get√接口自动化核心知识点浓缩,为面试加分

这篇具有很好参考价值的文章主要介绍了get√接口自动化核心知识点浓缩,为面试加分。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

日常接触到的接口自动化从实际目标可以划分为两大类:

1、为模拟测试数据而开展的接口自动化

这种接口自动化大多是单次执行,目的很明确是为了功能测试创造测试数据,节约人工造数据的时间和人工成本,提高功能测试人员的测试效率。

2、在功能测试之前提前发现错误而开展的接口自动化

这种接口自动化的工作流程跟功能测试一样,需要设计接口测试用例,然后执行接口测试用例。

说白了就是对单接口进行功能校验,包括接口参数的必填性、长度字符类型限制、入参枚举值等是否正确、响应数据是否正确等进行校验。

本文主要讲解第二种的接口自动化测试。浓缩了接口自动化的核心点进行实战,该实战或许能成为面试的加分点。

  • 接口测试用例设计

  • 代码读取接口测试用例

  • 利用pytest框架实现接口自动化

  • 利用python-requests完成接口请求

  • 利用jenkins+allure实现持续构建和输出测试报告

需求分析

  • Excel管理接口测试用例

  • Pytest框架运行测试用例

  • Jenkins集成构建

  • Allure展示测试报告

数据准备

了解接口

1.接口请求方式:get

2.接口请求头:{"Content-Type": "text/html;charset=utf-8"}

3.接口请求体:{"key": "*****************,"type": ""}

4.参数值:type=guoji、keji、yule,默认top

5.新闻请求:http://v.juhe.cn/toutiao/index

备注:接口请求的key需要自行去聚合数据平台申请。

设计接口测试用例

接口测试用例设计思路跟功能测试用例设计一致,基本是是校验:必填项、字符类型长度限制、入参内容等。

接口部分用例设计如下:(仅供参考)

get√接口自动化核心知识点浓缩,为面试加分,软件测试,自动化,运维

脚本目录设计

完整的接口自动化测试,一般分为:数据、公共配置、接口脚本、报告四大基础文件夹。

  • 数据:Data文件夹用于存放数据,例如测试用例文档

  • 公共脚本:Common文件夹用于存放公共方法的代码文件,例如:读取测试用例代码文件等

  • 接口脚本:Request文件夹用于存放各个不同业务接口的代码文件,例如:获取新闻头条接口代码文件等

  • 报告:Report文件夹,用于存放测试结果报告

脚本设计相关知识点

读取测试用例

知识点1:xlrd读取excel的基础方法

1.打开文件对象:fb=xlrd.open_workbook(‘xls测试用例文件路径’)

2.获取工作表名称:sheetnames=fb.sheet_names ()

3.打开测试用例所在工作表:casesheet=fb.get_by_name(‘’用例所在工作表名称)

4.获取测试用例条数(表格行数):rows=casesheet.nrows

5.获取工作表内单元格值:cell_value=casesheet.cell_values(x,y),其中x 和y为单元格的横坐标和纵坐标

6.由于需要通过pytest的装饰器进行参数化,所以读取到的单元格需要组合成列表的模板

例如:

 
 

case1=[‘url_01’,’method_01’,{body_01 },’expect_01’] case2=[‘url_02’,’method_02’,{body_02 },’expect_02’]

最后提供给pytest读取的数据应该是:

 
 

[[‘url_01’,’method_01’,{body_01 },’expect_01’], [‘url_02’,’method_02’,{body_02 },’expect_02’]]

代码片段:

使用列表追加的方法append()。

get√接口自动化核心知识点浓缩,为面试加分,软件测试,自动化,运维

备注:通过cell_values()读取到的单元格数据,默认是字符串str类型。

知识点2:数据转化

1.url、method是字符串类型,所以无需转化

2.header和body需要通过json.loads()转为json格式

接口请求

知识点1:requests接口请求基础

1.发起接口请求:

 
 

resq=request.get() resq =request.post()

2.获取响应数据并转为json格式:resq.json()

3.断言:assert

4.提取响应内容:jsonpath语法

 
 

response[‘msg’] response[‘data’][‘name’]

知识点2:pytest框架

环境安装:

 
 

pip install pytest

1.Pytest使用规则:用例和脚本文件必须以test开头

2.参数化执行用例:Pytest装饰器@pytest.mark.aprametrize()

a)单个参数写法:@pytest.mark.parametrize('inData',[10,20]),第一个参数为变量名称,第二个为参数值。不需要设置循环读取参数值,因为pytest的装饰器会自动循环读取。

b)多个参数写法:(参数值以元组形式写)@pytest.mark.parametrize('第一个参数名称,第二个参数名称'),[(第一个参数的第一个值,第一个参数的第二个值),(第二个参数的第一个值,第二个参数的第二个值)]。

c)不需要设置循环读取参数值,因为pytest的装饰器会自动循环读取。

get√接口自动化核心知识点浓缩,为面试加分,软件测试,自动化,运维

3.本地调试运行脚本:

接口自动化运行脚本到生成allure-html报告,分为2步骤:

第1步:alluredir生成测试报告数据源文件json,存入report文件夹内

pytest.main(['接口请求脚本文件.py','-s','--alluredir=../report/'])

第2步:从report文件夹内将测试报告数据源文件json转为html报告

os.system('allure generate ../report/ -o ../report_html/')

持续构建

知识点:jenkins构建+allure测试报告

1.Jenkins环境搭建

2.下载allure报告插件

3.构建

a)构建:利用pytest命令执行脚本,并生成allure源数据

b)构建后操作:添加allure report(jenkins会自动将allure源数据组合成html报告)

get√接口自动化核心知识点浓缩,为面试加分,软件测试,自动化,运维

结果

get√接口自动化核心知识点浓缩,为面试加分,软件测试,自动化,运维

最后:

【整整200集】超超超详细的Python接口自动化测试进阶教程合集,真实模拟企业项目实战文章来源地址https://www.toymoban.com/news/detail-679035.html

到了这里,关于get√接口自动化核心知识点浓缩,为面试加分的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Python接口自动化测试post请求和get请求,获取请求返回值

    目录 引言 请求接口为Post时,传参方法  获取接口请求响应数据 我们在做python接口自动化测试时,接口的请求方法有get,post等;get和post请求传参,和获取接口响应数据的方法; 我们在使用python中requests库做接口测试时,在做post接口测试传参的时候,需要传入请求体,我们把

    2024年02月02日
    浏览(44)
  • PyFlink核心知识点

    四层 说明 备注 SteamGraph 代码生成的最初的图 表示程序的拓扑结构 JobGraph 将多个符合条件的节点,链接为一个节点 可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗 ExecutionGraph JobGraph的并行化版本 是调度层最核心的数据结构 PhysicalGraph JobManager根据ExecutionGra

    2024年04月27日
    浏览(42)
  • Vue入门——核心知识点

    Vue是一套用于 构建用户界面 的 渐进式 JS框架。 构建用户界面:就是将后端返回来的数据以不同的形式(例如:列表、按钮等)显示在界面上。 渐进式:就是可以按需加载各种库。简单的应用只需要一个核心库即可,复杂的应用可以按照需求引入各种Vue插件。 采用组件化模式

    2024年02月06日
    浏览(40)
  • redis核心知识点简略笔记

    value数据类型 string 二进制安全 list 有序、可重复 set 无序、不重复 hash field-value的map sorted set 不重复、通过double类型score分数排序 场景 string 计数器 缓存 分布式锁 访问频率控制 分布式session hash 购物车等对象属性灵活修改 list 定时排行榜 set 收藏 sorted set 实时排行榜 持久化

    2024年02月13日
    浏览(39)
  • 垃圾回收的核心知识点解析

    Java运行时内存中的程序计数器、虚拟机栈、本地方法栈这三部分区域其生命周期与相关线程有关,随线程而生,随线程而灭。而程序计数器就是一个单纯存地址的整数也不需要关心,因此我们GC(垃圾回收)的主要目标就是堆(堆中存放着几乎所有实例对象)! 一个对象,如

    2024年02月16日
    浏览(31)
  • JavaSE核心基础-循环-知识点

    1.循环概念 循环是在满足条件的情况下,反复的做同一件事。 Java语言中的循环语句有三种,分别是for语句、while语句和do-while语句。程序中需要循环处理时,程序员要根据实际问题,选择适当的循环语句。解决循环问题时一定要找到循环条件和循环操作。 2.for循环语句格式

    2024年02月22日
    浏览(30)
  • 一文吃透Tomcat核心知识点

    首先,看一下整个架构图。最全面的Java面试网站 接下来简单解释一下。 Server :服务器。Tomcat 就是一个 Server 服务器。 Service :在服务器中可以有多个 Service,只不过在我们常用的这套 Catalina 容器的Tomcat 中只包含一个 Service,在 Service 中包含连接器和容器。一个完整的 Serv

    2024年02月02日
    浏览(34)
  • Java核心技术知识点笔记—并发

    前言:多任务(multitasking),即同一刻运行多个程序的能力。并发执行的进程数目并不是由CPU数目制约的。操作系统将CPU的时间片分配给每一个进程,给人并行处理的感觉。 1、线程(thread):多线程程序的概念,即可以同时执行多个任务的程序。其中,每个任务称为一个线

    2023年04月12日
    浏览(67)
  • 【MQ 系列】RabbitMq 核心知识点小结

    RabbitMQ 是一个基于 AMQP 协议实现的企业级消息系统,想要顺畅的玩耍的前提是得先了解它,本文将主要介绍 rabbitmq 的一些基本知识点 特点 基本概念 消息投递消费的几种姿势 事务 集群 它是采用 Erlang 语言实现的 AMQP(Advanced Message Queued Protocol)的消息中间件,最初起源于金融系

    2024年01月23日
    浏览(31)
  • Java核心知识点整理大全23-笔记

    目录 21. JAVA 算法 21.1.1. 二分查找 21.1.2.冒泡排序算法 21.1.3. 插入排序算法 21.1.4. 快速排序算法 21.1.1. 希尔排序算法 21.1.2. 归并排序算法 21.1.3. 桶排序算法 21.1.4. 基数排序算法 21.1.5. 剪枝算法 21.1.6. 回溯算法 21.1.7. 最短路径算法 21.1.8. 最大子数组算法 21.1.9. 最长公共子序算法

    2024年02月04日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包