当前位置: 首页 > 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; 数据…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...