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) 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0) 数据…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...
C++_哈希表
本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说,直接开始吧! 一、基础概念 1. 哈希核心思想: 哈希函数的作用:通过此函数建立一个Key与存储位置之间的映射关系。理想目标:实现…...
