当前位置: 首页 > news >正文

Python+requests+Jenkins接口自动化测试实例

在做功能测试的基础上,我平时也会用postman测试接口,不过postman只能测试一个一个接口,不能连贯起来,特别是我们公司的接口很多都是要用到token的,导致我每次测个需要登录的接口都要去获取到token,做了很多无用功的感觉,心累~~~,所以我就开始学习并捣鼓接口自动化测试。写这篇文章只是用来记录学习的总结,便于以后回顾,温习。我也是初学者,可能Python基础不会太好,我只能写出自己觉得最简单易懂的代码啦,我深知有很多地方需要完善,望大神看到,可进行指导,感谢感谢。


介绍一个公司的业务逻辑,我只做了获取验证码,登录,下单。验证码是每次都不一样,不是固定的。

下面的代码是我从一个一个慢慢整合的,我开始写都是简单的不行的那种,好看我自己错了那里,不过我发现了,更容易检查出自己的错误,更好写对的,后面慢慢进阶,让代码看起来专业一点。

开始啦开始啦~~~如果公司接口文档不会看的话,可以问问公司的开发。

嗯,Python requests接口不会的话,可以先看看这里的http://docs.python-requests.org/zh_CN/latest/user/quickstart.html(中文的官方文档)。

啦啦啦~~~unittest可以看这里https://www.cnblogs.com/yufeihlf/p/5707929.html,下面写的代码我就不一一解释了,我怕我解释错了,误导人啦。

(小白基础啦)安利个最简单的,我开始不会的时候,我是从postman发送一个请求,成功之后就点页面的code,看图啦,下图下图!!!

有很多种选择语言,看你是用那种啦,反正我是用Python requests的

好了,看看我选择的Python requests是怎么样的啦。下图下图!!!

 

这个好正式、好规范啊,反正我是自己慢慢试探,那个可以去除的,或者可以自己看起来可以更加简洁优化掉啦(就是没有这么规范啦,自己怎么开心怎么写啦),举个例子,像header我觉得cache-control是没有必要的(接口文档没有写这个,开发哥哥只写了content-type)哈哈哈哈哈哈。

有一种最坏的情况的话,如果postman都不会用的话,就自己百度,百度看起来不够完整的话,就继续百度,问开发吧,我后续研究再透彻一点就继续做笔记。

  

1、测试用例有3个,获取验证码的,登录的,还有一个下单的。接下来我就开始把获取验证码的接口的代码展示啦。

我的验证码是提取出来,建了一个文本文件夹保存起来,要用的时候直接打开文件读取就好了(我感觉有更好的办法,我后期再进一步优化,达到最优化)。

2、接下来的是登录的接口了,登录就会拿到刚刚保存的验证码,登录成功后就会产生token,这个token我也是建了一个文本文件夹保存起来,到时候下单的时候要用到的。

有打印的东西是我想验证一下有没有错,这里可以忽略(新手请原谅)。

3、好了接下来就是下单的接口代码了,这个必填参数有点多啊。

参数可能不是很规范啊,请原谅,是测试数据呢。

 

这个的下单页面的接口,下单完了之后又订单号的,我在后续会补上连接数据库验证的,先分享这些啦。还是老规矩,我把订单号提取出来,保存到文本文件夹里面,方便以后其他接口要用到直接访问啦。

4、嗯~~~最后一个代码文件啦,是运行测试代码的文件,就是生成测试报告和把测试报告发送到邮箱。看图啦!!!

嗯,发送邮件的话,这里可以百度一下Python发送邮件,就会很多出来了,我就不讲了,我主要是分了超级多小模块,一块一块测试过了,看看可不可以之后再把一块块拼接起来的,像发送邮件和生成测试报告我都是单独写一块的,测试过了,才放一起的。

这里的话,就完了,我的这次测试用例写完了,连接数据库的下次更新上来了,小模块我是写好了的。

下面再啰嗦一下,看下我的项目目录啦~~~不专业的话,快来指导我。

这次写的代码是比较简单,都是写了正常的流程,啊啊啊,后期优化了啊,这次就先将就着看着啦。

目录~~~

目录~~~

来了。。。。

嗯,run_test_case.py和run_test_case1主要是我进一步优化优化的,可忽略~~~

 好了看看我的测试报告啦~~~~

点击Detail,如果是通过了可以看到你pass,我这里有内容是因为我在代码里有输入,结果就到了这里,可以忽略~~~,如果是不通过的话,就不会显示pass会显示error,里面会有错误的提示信息(别问我为什么知道,因为我有出错)。

好了,接下来看我的邮箱啦。

来来来~~~~

温馨提示:第一次发送过去,就会在垃圾箱,要标注一下这不是垃圾邮件,才会回到正常的邮箱里面,我用的是QQ邮箱,其他邮箱有待考证。

编辑器我是用pycharm,这个可以自己去官网下载,有免费的~~~

嗯~~~~今天就这么多了,下次再继续更新。

Python接口自动化测试零基础入门到精通(2023最新版)

相关文章:

Python+requests+Jenkins接口自动化测试实例

在做功能测试的基础上,我平时也会用postman测试接口,不过postman只能测试一个一个接口,不能连贯起来,特别是我们公司的接口很多都是要用到token的,导致我每次测个需要登录的接口都要去获取到token,做了很多…...

SpringBoot3核心原理

SpringBoot3核心原理 事件和监听器 生命周期监听 场景:监听应用的生命周期 可以通过下面步骤自定义SpringApplicationRunListener来监听事件。 ①、编写SpringApplicationRunListener实现类 ②、在META-INF/spring.factories中配置org.springframework.boot.Sprin…...

JS常用数据类型转换(数字型和字符串型之间转换)

提供了5中基本数据类型:数字 number 字符串 string 布尔 boolean 空值 null 未定义的 undefined 常用的是数字型和字符串型之间的转换,常用的转换方法如下: 1 数字型转换成字符串型 a) 使用String()方法…...

算法通关村第一关—青铜挑战—用Java基本实现各种链表操作

文章目录 第一关—链表【青铜挑战】1.1 单链表的概念1.2 链表的相关概念1.3 创建链表 - Java实现1.4 链表的增删改查1.4.1 遍历单链表 - 求单链表长度1.4.2 链表插入 - 三种位置插入(1)在链表的表头插入(2)在链表的中间插入&#…...

SparkRDD及算子-python版

RDD相关知识 RDD介绍 RDD 是Spark的核心抽象,即 弹性分布式数据集(residenta distributed dataset)。代表一个不可变,可分区,里面元素可并行计算的集合。其具有数据流模型的特点:自动容错,位置…...

嵌入式设备与PC上位机通信协议设计的几点原则

嵌入式设备在运行中需要设置参数,这个工作经常由PC机来实现,需要为双方通信设计协议,有代表性协议是如下三种: 从上表可以看到,一般嵌入式设备内存和运算性能都有限,因此固定二进制是首选通信协议。 一&am…...

Go 内置运算符

一、算数运算符 1、算数运算符使用 package mainimport ("fmt" )func main(){fmt.PrintIn("103",103) //10313fmt.PrintIn("10-3",10-3) //10-37fmt.PrintIn("10*3",10*3) //10*330//除法注意:如果运算的数都是…...

Table和HashBasedTable的使用案例

------------------- 1.普通使用 package org.example.testhashbasedtable;import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table;import java.util.Map;public class TestHashBasedTable {public static void main(String[] args) {Ta…...

【执行批处理后 executeBatch() 没反应,一个参数相信就能搞定】

一、场景是在使用EasyExcel读取全表时,每次手动提交事务6w多条,总计190w数据量的情况下发生的。 博主比较fw,卡住了两天😶 此问题还有一个比较bug的地方,就是当你在 executeBatch() 上下打断点时还能够执行出来&…...

【LeetCode】每日一题 2023_11_25 二叉树中的伪回文路径(dfs,数组/位运算)

文章目录 刷题前唠嗑题目:二叉树中的伪回文路径题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode?启动!!! 这个月第一次周末早起~ 题目:二叉树中的伪回文路径 题目链接:1457. 二…...

什么是海外私人IP代理?是纯净独享的代理吗?

相信许多互联网工作者都遇到过IP禁令,比如网络抓取项目,使用共享代理服务器向网站发出第一个请求,但却您收到了禁令,这大部分是由于你的共享IP经过多人使用被禁用所致。 那么到底什么是私人代理呢?它们是否适合您的情…...

Vue组件库推荐:Element UI深度解析

在Vue开发中,使用组件库可以极大地提高开发效率,减少重复工作量。Element UI作为一款优秀的Vue组件库,被广泛应用于各类项目中。本文将对Element UI进行深度解析,为开发者提供详细的使用说明和具体的代码示例。 1,Ele…...

Mysql 8.0主从复制模式安装(兼容Mysql 5.7)

Mysql V8.0.35安装 官网地址:MySQL :: Download MySQL Community Server 下载【Mysql 8.0.35】压缩包 解压压缩包,仅保留6个安装文件即可 mysql-community-client-8.0.31-1.el7.x86_64.rpm mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm my…...

基于Django+Tensorflow卷积神经网络鸟类识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介系统概述系统功能核心技术系统架构系统优势 二、功能三、系统四. 总结  总结 一项目简介 介绍一个基于DjangoTensorflow卷积神经网络鸟类识别系统是一个非…...

史上最全前端知识点+高频面试题合集,十二大专题,命中率高达95%

前言: 下面分享一些关于阿里,美团,深信服等公司的面经,供大家参考一下。大家也可以去收集一些其他的面试题,可以通过面试题来看看自己有哪里不足。也可以了解自己想去的公司会问什么问题,进行有针对的复习。…...

我叫:基数排序【JAVA】

1.自我介绍 基数排序(radix sort)属于“分配式排序” (distribution sort),又称“桶子法” (bucket sort)或bin sort,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,是‘桶排序’的扩展 2.基本思想 将所有待比较数值统一为同样的数位长度,数位较短的数…...

ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用【鸿蒙专栏-05】

ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用 HarmonyOS,作为一款全场景分布式操作系统,为了推动更广泛的应用开发,采用了一种先进而灵活的编程语言——ArkTS。ArkTS是在TypeScript(TS)的基础上发展而来,为HarmonyOS提供了丰富的应用开发工具,使开…...

智慧城市内涝积水监测仪功能,提升城市预防功能

内涝积水监测仪不仅改变了人们应对城市内涝的老办法,还让智慧城市往前迈了一大步。这个监测仪是怎么做到的呢?就是靠它精准的数据监测和预警,让城市管理有了更科学高效的解决妙招。它就像有了个聪明又负责任的助手,让城市管理更加…...

ISCTF2023 部分wp

学一年了还在入门( web where_is_the_flag ISCTF{41631519-1c64-40f6-8dbb-27877a184e74} 圣杯战争 <?php // highlight_file(__FILE__); // error_reporting(0);class artifact{public $excalibuer;public $arrow;public function __toString(){echo "为Saber选择…...

springboot(ssm毕业生学历证明系统Java(codeLW)

springboot(ssm毕业生学历证明系统Java(code&LW) 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#xff09; 数据…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)

+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...

嵌入式面试常问问题

以下内容面向嵌入式/系统方向的初学者与面试备考者,全面梳理了以下几大板块,并在每个板块末尾列出常见的面试问答思路,帮助你既能夯实基础,又能应对面试挑战。 一、TCP/IP 协议 1.1 TCP/IP 五层模型概述 链路层(Link Layer) 包括网卡驱动、以太网、Wi‑Fi、PPP 等。负责…...

CSS 工具对比:UnoCSS vs Tailwind CSS,谁是你的菜?

在现代前端开发中&#xff0c;Utility-First (功能优先) CSS 框架已经成为主流。其中&#xff0c;Tailwind CSS 无疑是市场的领导者和标杆。然而&#xff0c;一个名为 UnoCSS 的新星正以其惊人的性能和极致的灵活性迅速崛起。 这篇文章将深入探讨这两款工具的核心理念、技术差…...

JavaScript 标签加载

目录 JavaScript 标签加载script 标签的 async 和 defer 属性&#xff0c;分别代表什么&#xff0c;有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...

HTML版英语学习系统

HTML版英语学习系统 这是一个完全免费、无需安装、功能完整的英语学习工具&#xff0c;使用HTML CSS JavaScript实现。 功能 文本朗读练习 - 输入英文文章&#xff0c;系统朗读帮助练习听力和发音&#xff0c;适合跟读练习&#xff0c;模仿学习&#xff1b;实时词典查询 - 双…...

如何让非 TCP/IP 协议驱动屏蔽 IPv4/IPv6 和 ARP 报文?

——从硬件过滤到协议栈隔离的完整指南 引言 在现代网络开发中,许多场景需要定制化网络协议(如工业控制、高性能计算),此时需确保驱动仅处理特定协议,避免被标准协议(如 IPv4/IPv6/ARP)干扰。本文基于 Linux 内核驱动的实现,探讨如何通过硬件过滤、驱动层拦截和协议栈…...