独立接口面向对象设计

news2024/12/26 11:12:14

使用面向对象的编程思想,来进行独立接口面向对象的设计,一个接口测试对应一个类,这样后面做框架也比较规范一些。

类定义包含类的属性和类的方法。

类属性包含接口访问地址和接口测试数据

类方法包含测试方法

1、V1.0 实现一组正常注册数据的接口测试

# 用面向对象思想设计正常注册接口测试,脚本传入一组测试数据
import requests

#定义测试类
class register_test():
    # 定义属性,一般是定义在类的初始化方法中
    def __init__(self):
        self.url="http://localhost:8080/jwshoplogin/user/register.do"
        self.userinfo={"username":"程勇",
                       "password":"123456",
                       "email":"chengyong@51testing.com",
                       "phone":"13889564546",
                       "question":"喜欢读的书",
                       "answer":"幸福人生"}
    def registertest(self):
        #发送接口请求
        s=requests.session()
        response=s.post(self.url,data=self.userinfo).json()
        print(response)

if __name__ == '__main__':
    registobj=register_test()
    registobj.registertest()

输出结果:

{'status': 0, 'data': '注册成功'}

2、实现CSV读取数据传入

# 用面向对象思想设计正常注册接口测试,脚本传入一组测试数据
import requests
import csv
import requests
#定义测试类
class register_test():
    # 定义属性,一般是定义在类的初始化方法中
    def __init__(self):
        self.url="http://localhost:8080/jwshoplogin/user/register.do"



    def registertest(self):
        #发送接口请求
        file1=open("userinfo.csv","r")
        table=csv.reader(file1)
        self.userinfo = {}

        for row in table:
            print(row[0])
            self.userinfo["username"]=row[0]
            self.userinfo["password"]=row[1]
            self.userinfo["email"]=row[2]
            self.userinfo["phone"]=row[3]
            self.userinfo["question"]=row[4]
            self.userinfo["answer"]=row[5]
            s=requests.session()
            response=s.post(self.url,data=self.userinfo).text
            print(response)
        file2.close()

if __name__ == '__main__':
    registobj=register_test()
    registobj.registertest()

测试结果:

程勇6
{"status":1,"msg":"邮件已经存在"}
程勇7
{"status":0,"data":"注册成功"}

3、V3.0 实现测试报告的写入

# 用面向对象思想设计正常注册接口测试,脚本传入一组测试数据
import requests
import csv
import requests
#定义测试类
class register_test():
    # 定义属性,一般是定义在类的初始化方法中
    def __init__(self):
        self.url="http://localhost:8080/jwshoplogin/user/register.do"

    def registertest(self):
        #发送接口请求
        file1=open("userinfo.csv","r")
        file2=open("testresult.csv","w")
        table=csv.reader(file1)
        self.userinfo = {}

        for row in table:
            print(row[0])
            self.userinfo["username"]=row[0]
            self.userinfo["password"]=row[1]
            self.userinfo["email"]=row[2]
            self.userinfo["phone"]=row[3]
            self.userinfo["question"]=row[4]
            self.userinfo["answer"]=row[5]
            s=requests.session()
            response=s.post(self.url,data=self.userinfo).text
            print(response)
            msg=response.find("status")
            if msg>0:
                print("测试通过")
                file2.write("测试通过"+"\n")
            else:
                file2.write("测试失败"+"\n")
        file2.close()


if __name__ == '__main__':
    registobj=register_test()
    registobj.registertest()

运行结果:

其中邮件和用户名前面用过一次,所以不能再用了。

程勇6
{"status":1,"msg":"邮件已经存在"}
测试通过
程勇7
{"status":1,"msg":"用户名已经存在"}
测试通过

测试结果已经写入到结果的CSV文件中。

希望本篇文章对您有帮助,愿每个测试都能顺利转为测试开发,提高职业技能,成为前1%的存在,为社会创造更大的价值,为公司节约更多的成本,为自己和家庭谋求更高的收入,所有人不受职业年龄限制,越老越吃香,直至财富自由;愿测试技术越来越进步,软件质量进一步得到提高,效率提高。愿祖国更加美好,人民更加幸福。多喜乐,常安宁。

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

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

相关文章

从环型到树型:多种网络拓扑结构的优缺点及应用

网络拓扑作为网络设计的基础,对于网络的性能、可靠性和扩展性起着重要作用。作为网络通信工程师,我们不仅需要了解网络拓扑的基本概念,还需深入掌握其在实际网络设计中的应用。本文将详细介绍网络拓扑,包括物理拓扑、逻辑拓扑&…

1Panel开源面板项目GitHub Star数量突破20,000!

截至2024年6月25日9:00,FIT2CLOUD飞致云旗下开源项目——1Panel开源Linux服务器运维管理面板GitHub Star数超过20,000个! 继Halo和JumpServer之后,1Panel成为飞致云旗下第三个GitHub Star数量超过20,000个的开源项目,也是飞致云旗…

【数据分享】《国际统计年鉴》1996-2022

公众号新功能 目前公众号新增以下等功能 1、处理GIS出图、Python制图、区位图、土地利用现状图、土地利用动态度和重心迁移图等等 2、核密度分析、网络od分析、地形分析、空间分析等等 3、地理加权回归、地理探测器、生态环境质量指数、地理加权回归模型影响因素分析、计算…

Typora 更换皮肤

typora 下载激活 上面的链接已经讲了如何下载激活typora工具,本篇说一下如何给typora换肤 typora 中文官网 进入官网,在整体界面布局的上方找到主题 下面以其中一个主题为例,跟换主题皮肤 下载该主题 找到旁边的release 下拉窗体,在Assets里面找这种压缩包,通过名字很容易区…

Vue_cli搭建过程项目创建

概述 vue-cli 官方提供的一个脚手架,用于快速生成一个 vue 的项目模板;预先定义 好的目录结构及基础代码,就好比咱们在创建 Maven 项目时可以选择创建一个 骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速&am…

RedHat9 | RAID配置与管理

一、实验环境 1、RAID简介 RAID(Redundant Array of Independent Disks),即独立磁盘冗余阵列,是一种数据存储技术。它通过将多个独立的磁盘驱动器组合起来,形成一个逻辑上的整体,从而提高数据存储的性能、…

国内AI行业对GPU算力的需求有多大?

随着人工智能(AI)技术的飞速发展,算力作为支撑其持续进步的核心动力,在国内的重要性日益凸显,无论是海外还是国内,AI算力行业都呈现出蓬勃发展的态势,而国内对于AI算力的需求更是呈现出爆发式的…

Sensei for Mac:一键清理,系统如新!

Sensei for Mac是一款高效且易于使用的系统优化清理工具。它能够深入Mac系统内部,智能识别并清理无用的缓存文件、临时文件、垃圾邮件等,从而释放磁盘空间,提升系统性能。无论是日常使用还是长时间工作后,Sensei都能帮助你的Mac恢…

漏洞挖掘 | 某SRC sql注入漏洞挖掘记录

在系统的搜索框功能进行抓包: 分析数据包发现,biaoti参数单引号报错 双引号正常 经过我的不断测试,’||exp(710)||’报错,exp函数就是执行e的多少次方,709不会报错,710会导致这个数太大报错 709正常,这里说…

加油卡APP系统开发,优惠加油!

在当下的社会生活中,汽车已经成为了家家户户必备的出行工具,骑车加油也成为了居民生活中不可或缺的事情。为了让大众更加优惠加油,在线加油卡系统成为了一个重要的加油渠道! 在线加油卡系统是一个移动应用程序,用户可…

Centos7 Cpolar内网穿透工具

你是否想把本地测试的项目挂载到公网上提供给别人调用查看(当然这是在你没有服务器的情况下,如果有请跳过) 服务器系统:CentOS-7-x86_64-DVD-2009.iso 这是我在本地测试使用的服务器系统 Coplar官网 注册方式:邮箱注…

a-table单元格指定合并以及表格双击编辑以及未填写指定验证功能

文章目录 a-table单元格指定合并以及表格双击编辑以及未填写指定验证功能一、 a-table单元格指定合并1. a-table2. columns3. 图例 二、a-table 表格双击编辑以及未填写验证1. a-table2. js3. 图例 a-table单元格指定合并以及表格双击编辑以及未填写指定验证功能 一、 a-table…

API 安全策略和基础指南

API 是当今数字创新计划的核心,已成为应用程序的头号攻击载体。了解什么是 API 安全、为什么它如此重要,以及如何保护您的 API 免受现代威胁至关重要。 什么是 API 安全? 应用程序编程接口(API)是现代应用程序的基石…

react学习——15react生命周期(新)

一、生命周期图新 二、生命周期三个阶段(新) 1. 初始化阶段:由ReactDOM.render()触发—初次渲染 1. constructor() 2. getDerivedStateFromProps 3. render() 4. componentDidMount()2. 更新阶段:由组件内部this.setSate()或…

【Linux学习十八】网站管理:防火墙介绍、静态站点、动态站点、域名

1.Apache Apache官网: www.apache.org 软件包名称: httpd 服务端口:80/tcp(http) 443/tcp(https) 配置文件: /etc/httpd/conf/httpd.conf 子配置文件:/etc/httpd/conf.d/*.conf 查看被占用的端口号 netstat -tuln | grep <端口号> 解哪个程序正在使用端口 80&#xff0…

微信小程序版threejs的使用

首先是使用环境:我是使用的uniapp制作的微信小程序,当然原生的也是可以的,但是测试过很多,发现微信官方的threejs移植版本只能够导入gltf格式的模型,无法导入obj,这就有些尴尬了,为此我找了很多版本的threejs,首先是threejs-miniprogram,也就是官方的,可以直接在unia…

和AI高效对话,掌握这6个原则就够了!

一、前言 2023年11月30日&#xff0c;ChatGPT3.5发布以后&#xff0c;震撼了全球。很多普通人发现&#xff0c;只要会提问题&#xff0c;自己也可以大大方方地拥抱AI和大模型的浪潮~ 对大模型AI提问的技术&#xff0c;就是我们常说的Prompt技术。 Prompt技术&#xff0c;全称为…

状态压缩动态规划(State Compression DP)算法详解

状态压缩动态规划&#xff08;State Compression DP&#xff09;是一种高效解决组合优化问题的技术&#xff0c;特别适用于那些状态空间较大且可以用二进制表示的情况。本文将详细讲解状态压缩DP的原理、常用的位运算技巧、以及具体的例题分析。 原理概述 状态压缩DP的核心思…

[ios逆向]查看ios安装包ipa签名证书embedded.mobileprovision解密 附带解密环境openssl

openssl smime -inform der -verify -noverify -in embedded.mobileprovision 解密embedded.mobileprovision文件 链接&#xff1a;https://pan.baidu.com/s/1UwNOWONKV1SNj5aX_ZZCzQ?pwdglco 提取码&#xff1a;glco –来自百度网盘超级会员V8的分享 可以使用everything 查看…

红酒邂逅瑜伽,开启一场身、心、灵的完美和谐之旅

在喧嚣的都市中&#xff0c;人们总是渴望寻找一处心灵的宁静&#xff0c;一个能够释放身心疲惫的场景。而红酒与瑜伽&#xff0c;正是这样一对奇妙的组合&#xff0c;它们共同为我们开启了一场身心灵的和谐之旅。今天&#xff0c;就让我们一起走进这个充满魅力的世界&#xff0…