接口自动化测试思路和实战之模块化测试脚本框架

模块化测试脚本框架

  需要创建独立的可描述的模块、程序片断以及待测试应用程序的脚本。这些小脚本进行组合,就能组成用来独立运行特定的测试的测试用例脚本。

场景一:

  开发把 access_token接口地址由/cgi-bin/token 改为/cgi-bin/get_token或者修改参数等 ==》开发把常用的接口信息调整了;这一个场景会导致测试脚本大部分的地方需要维护,而且还担心未来再调整;故使用模块化测试框架解决。

  由于获取 token操作在代码中使用非常频繁,所以做成公共的

步骤1、在common文件夹下新建common_function.py文件,封装方法

 编写代码:

# encoding: utf-8
# @author: Jeffrey
# @file: commom_function.py
# @time: 2022/7/26 21:01
# @desc: 模块化框架
import jsonpathdef get_access_token_value(session_obj):"""获取access_token的值"""url_params = {"grant_type": "client_credential","appid": "wxf14419077f707856","secret": "92a113bd4b5ffdc72144740dc7123c99"}response = session_obj.get(url="https://api.weixin.qq.com/cgi-bin/token",params=url_params)# 获取响应json中的access_token的值token_value = jsonpath.jsonpath(response.json(), "$.access_token")[0]return token_value
步骤2、在test_create_user_tag_api.py文件中导入公共模块,把原先多余的代码删除掉;如下图

上述代码的好处:1、降低代码的冗余;2、方便维护(上面描述的场景)

场景二:

公司的测试环境地址变更,比如从 api.weixin.qq.com该域名切换到192.168.1.12

步骤3、在common文件夹下新建local_config.py文件

步骤4、把local_config.py文件中的值放到用例层,如下图

查看执行结果

注:通过以上的用例层执行的时候,每个用例都要获取一次access_token,其实access_token每次获取后有效期是2个小时,后面解决。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/191193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】链式二叉树OJ题---C语言版

链式二叉树OJ题 一、单值二叉树(1)题目描述:(2)思路表述:(3)代码实现: 二、二叉树最大深度(1)题目描述:(2)思路…

解套方式之认识T+0

在炒股中,大盘弱势调整中投资者如果被套,又不愿意止损离场,为了尽量减少亏损、摊低买入总成本尽可能早日解套,有一种操作对策——做“T0”摊低买入总成本,这种操作方式通过经常性的赚取短线利润,达到最终降…

docker容器中创建非root用户

简介 用 docker 也有一段时间了,一直在 docker 容器中使用 root 用户肆意操作。直到部署 stable diffusion webui 我才发现无法使用 root 用户运行它,于是才幡然醒悟:是时候搞个非 root 用户了。 我使用的 docker 镜像文件是 centos:centos…

LeetCode的几道题

一、捡石头 292 思路就是: 谁面对4块石头的时候,谁就输(因为每次就是1-3块石头,如果剩下4块石头,你怎么拿,我都能把剩下的拿走,所以你就要想尽办法让对面面对4块石头的倍数, 比如有…

Linux shell中的函数定义、传参和调用

Linux shell中的函数定义、传参和调用: 函数定义语法: [ function ] functionName [()] { } 示例: #!/bin/bash# get limit if [ $# -eq 1 ] && [ $1 -gt 0 ]; thenlimit$1echo -e "\nINFO: input limit is $limit" e…

KM算法,C语言版本和Matlab版本

在这里我们不多介绍原理&#xff0c;直接看代码就好了。 C语言版本 #include<stdio.h> #include<string.h> const int maxn305; const int INF(1<<30)-1; int g[maxn][maxn]; int lx[maxn],ly[maxn]; int match[maxn]; bool visx[maxn],visy[maxn]; int sla…

C 标准库 <math.h>

C 标准库 <math.h> C <math.h>头文件声明了一组函数来执行数学运算&#xff0c;例如&#xff1a;sqrt()计算平方根&#xff0c;log()查找数字的自然对数&#xff0c;等等。 math.h 头文件定义了各种数学函数和一个宏。在这个库中所有可用的函数都带有一个 double…

CPU 使用率和负载Load

优质博文&#xff1a;IT-BLOG-CN 一、CPU 使用率 CPU使用率是 CPU处理非空闲任务所花费的时间百分比 。例如单核CPU 1s内非空闲态运行时间为0.8s&#xff0c;那么它的CPU使用率就是80%&#xff1b;双核CPU 1s内非空闲态运行时间分别为0.4s和0.6s&#xff0c;那么&#xff0c;…

IDEA2023安装教程(超详细)

文章目录 前言安装IntelliJ IDEA1. 下载IntelliJ IDEA2. 运行安装程序3. 选择安装路径4. 选择启动器设置5. 等待安装完成6. 启动IntelliJ IDEA7. 配置和设置8. 激活或选择许可证9. 开始使用 总结 前言 随着软件开发的不断发展&#xff0c;IntelliJ IDEA成为了许多开发人员首选…

数据结构 / 队列 / 循环队列 / 队列元素个数计算和遍历代码

1.队列元素个数计算和遍历代码 void output(queue *list) {if(NULLlist||list->frontlist->rear) //判断队列是否创建或空{puts("error or empty");return;}//循环结束判断条件是看是否到队尾//循环自增需要%MAXSIZEfor(int ilist->front; i!list->rear;…

基于JSP的网络考试系统/在线考试系统的设计与实现

摘 要 网络考试系统是由高校的一个网络考试&#xff0c;按照章程自主开展网络考试系统。网络考试是实施素质教育的重要途径和有效方式&#xff0c;在加强校园文化建设、提高学生综合素质、引导学生适应社会、促进学生成才就业等方面发挥着重要作用&#xff0c;是新形势下有效凝…

HNU-青蛙与蚊子

【问题描述】 有 n 只青蛙位于坐标轴 OX 上&#xff0c;对于每只青蛙&#xff0c;有两个已知值 xi、ti&#xff0c;表示第 i 只青蛙在坐标的位置&#xff08;各不相同&#xff09;以及它的舌头的长度。同样有 m 只蚊子一只接一只的落到坐标轴上&#xff0c;对于每只蚊子&#x…

RHCE学习笔记(RHEL8) - RH294

Chapter Ⅰ 介绍Ansible ansible ansible是一款开源自动化平台 ansible围绕一种无代理架构构建&#xff0c;在控制节点上安装ansible&#xff0c;且客户端不需要任何特殊的代理软件&#xff1b;ansible使用SSH等标准协议连接受管主机&#xff0c;并在受管主机上运行代码或命令来…

在cmd下查看mysql表的结构信息

我提前已经在mysql数据库中创建了一个表&#xff1a; 在cmd下&#xff0c;登录mysql以后&#xff0c;使用命令describe 表名、或者explain 表名可以查看表结构信息。但在实践中&#xff0c;查看表结构&#xff0c;多用describe命令&#xff0c;而查看执行计划用explain。 例…

p标签在div中居中

新建一个html文件&#xff0c;命名为test.html&#xff0c;用于讲解如何在css中让div中的p标签居中。 在test.html文件内&#xff0c;在div内&#xff0c;使用p标签创建一行文字&#xff0c;用于测试。 在test.html文件内&#xff0c;设置div标签的class属性为mydiv。 在…

2312skia,12画布包与路径包

画布包 Skia现在提供了,在Web上轻松部署图形API的WebAssembly构建,即CanvasKit. CanvasKit提供了测试新的Canvas和SVG平台API的地基,从而在Web平台上,实现快节奏开发.还可用作要求如Skia的Lottie动画支持等边角特征的自定义Web应用的部署机制. 特征 1,按允许直接绘画到HTML画…

MySQL - 多表查询

文章目录 1.聚合查询2.分组查找3.联合查询内连接外连接自连接子查询合并查询 SQL查询各关键字的执行先后顺序 总结 本文开始 1.聚合查询 聚合查询&#xff0c;使用的是聚合函数&#xff1a;count()&#xff0c;sum()&#xff0c;avg()&#xff0c;max()&#xff0c;min coun…

Hdoop学习笔记(HDP)-Part.05 Yum源配置

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

mysql常用命令行代码

连接到 MySQL 服务器&#xff1a; mysql -u your_username -p替换 your_username 为你的 MySQL 用户名。系统会提示你输入密码。 退出 MySQL 命令行&#xff1a; EXIT;或者按 Ctrl D。 显示所有数据库&#xff1a; SHOW DATABASES;选择数据库&#xff1a; USE your_database…

计算机网络扫盲(1)——因特网

一、概述 因特网是一个世界范围的计算机网络&#xff0c;即它是一个互联了遍及全世界数十亿计算设备的网络。大家对此应该并不陌生&#xff0c;我们身边有着不计其数的计算机设备被接入了因特网&#xff0c;如今计算机网络这个术语似乎已经有点过时了&#xff0c;用因特网的术语…