欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > python和unittest实现接口自动化测试

python和unittest实现接口自动化测试

2025/5/14 11:16:59 来源:https://blog.csdn.net/m0_52861000/article/details/144676422  浏览:    关键词:python和unittest实现接口自动化测试

目录

介绍

接口测试的目标

常见的接口测试类型

接口测试常用工具

一、准备工作

1.部署项目

2.pycharm里面要下载相关的模块

二、实操例子

(一)类的定义

(二)登录接口 

(三)查询用户接口

(四)添加用户

(五)修改密码

(六)添加栏目接口

七、调用 


介绍

接口测试的目标

  1. 验证功能:确保接口能正确处理请求并返回正确的结果。
  2. 性能验证:检查接口响应时间和吞吐量。
  3. 安全性验证:确保接口能防止攻击,如 SQL 注入、XSS 等。
  4. 稳定性和兼容性:验证接口在不同环境和负载下的表现。

常见的接口测试类型

  1. 功能测试:检查接口是否按文档要求执行特定操作。
  2. 性能测试:测试接口在高并发、负载下的响应能力。
  3. 安全性测试:确保接口有足够的权限控制和加密措施。
  4. 稳定性测试:测试接口在长时间运行或网络波动下的表现。

接口测试常用工具

  • Postman:手动测试和自动化接口测试。
  • Requests:Python 库,用于发送 HTTP 请求并验证响应。
  • SoapUI:支持 REST 和 SOAP 的接口测试工具。
  • JMeter:性能测试工具,也适用于接口测试。

一、准备工作

1.部署项目

https://download.csdn.net/download/m0_52861000/90171333

或者
https://pan.baidu.com/s/1_wsdkc-ziVW83zdToK_bVQ?pwd=cmss 提xx取码: cmss

项目部署操作:

Linux导入与运行项目详细步骤-CSDN博客

项目访问链接:

http://192.168.xx.xx:8080/cms/manage/loginOut.do

2.pycharm里面要下载相关的模块

requests:pychram设置--python解释器--添加-搜索requests--选择任意版本进行下载

selenium

python的自动化selenium安装配置(包含谷歌的chromedriver)_安装好 selenium 库并配置好 chrome 浏览器驱动-CSDN博客

二、实操例子

(一)类的定义

这个类使用 unittest 框架来进行接口测试,它定义了一些测试用例,比如登录、查询用户、添加用户等。每个测试用例都模拟了对某些接口的请求和验证。

import requests
import unittest
class CMS_test(unittest.TestCase):#在所有测试方法之前执行一次,通常用来进行环境设置或初始化操作@classmethoddef setUpClass(cls) -> None:print("类开始")#在所有测试方法执行完后执行一次,通常用来进行资源清理操作@classmethoddef tearDownClass(cls) -> None:print("类结束")#在每个测试方法之前执行一次@classmethoddef setUp(self) -> None:print("--start") #每个测试方法开始时打印此信息#每个测试方法结束后执行一次@classmethoddef tearDown(self) -> None:print("--end--") #每个测试方法结束时打印此信息

 

(二)登录接口 

这个方法用于模拟登录接口的请求。登录成功后,我们会返回响应的 Cookie,这个 Cookie 之后可以用来发起需要登录状态的请求(例如查询用户列表、添加用户等)。

 #接口一;登录接口def test01_login(self):#登录接口的url地址url = 'http://192.168.121.112:8080/cms/manage/loginJump.do'#登录请求需要传递的数据,通常包括用户名和密码,抓包获取data={'userAccount': 'admin','loginPwd': '123456'}#请求头,告诉服务器我们发送的是表单数据,这个也在抓包信息里面headers = {'Content-Type': 'application/x-www-form-urlencoded'}#发送post请求,模拟登录resp=requests.post(url=url,data=data,headers=headers)#打印响应接口的json数据(登录结果)print(resp.json())#返回响应的的cookies 用于后续的接口调用return resp.cookies

运行结果

{'code': '200', 'msg': '登录成功!', 'model': {}} 

(三)查询用户接口

    #查询用户接口def test02_queryUserList(self):#查询用户的接口url,抓取的数据user_url='http://192.168.121.112:8080/cms/manage/queryUserList.do'#请求体,告诉服务器我们发送的是表单数据,抓取的数据headers={'Content-Type': 'application/x-www-form-urlencoded'}#查询用户时需要传递的参数,抓取的数据data={'startCreateDate':'','endCreateDate':'','&searchValue':'','page':1}#使用test01_login方法获得登录后的cookiescookies=self.test01_login()#发送post请求,查询用户信息resp=requests.post(url=user_url,headers=headers,data=data,cookies=cookies)#打印接口返回的数据print(resp.json())

(四)添加用户

    def test03_saveSysUser(self):# 添加用户接口的 URL 地址url = 'http://192.168.121.112:8080/cms/manage/saveSysUser.do'# 请求头,告诉服务器我们发送的是表单数据headers = {'Content-type': 'application/x-www-form-urlencoded'}# 添加用户时需要传递的数据data = {'id': '',  # 新用户的 ID,添加时通常为空'userName': 'admin_04',  # 用户名'userSex': '1',  # 用户性别,1 表示男性'userMobile': '13467782300',  # 用户手机号'userEmail': '343 @ qq.com',  # 用户邮箱'userAccount': 'admin_04',  # 用户账号'loginPwd': '123456',  # 用户密码'confirmPwd': '123456'  # 确认密码,通常与密码一致}# 使用 test01_login 方法获取登录后的 cookiescookies = self.test01_login()# 发送 POST 请求,创建用户resp = requests.post(url=url, headers=headers, data=data, cookies=cookies)# 打印接口返回的 JSON 数据(操作结果)print(resp.json())

(五)修改密码

def test04_updateLoginPwd(self):# 修改密码接口的 URL 地址url = 'http://192.168.121.112:8080/cms/manage/updateLoginPwd.do'# 请求头,告诉服务器我们发送的是表单数据headers = {'Content-type':'application/x-www-form-urlencoded'}# 修改密码时需要传递的数据data = {'id': '4',  # 用户 ID'loginPwd': '123456',  # 新密码'loginPwd2': '123456'  # 确认新密码}# 使用 test01_login 方法获取登录后的 cookiescookies = self.test01_login()# 发送 POST 请求,修改密码resp = requests.post(url=url, headers=headers, data=data, cookies=cookies)# 打印接口返回的 JSON 数据(操作结果)print(resp.json())

(六)添加栏目接口

def test05_saveModuleCategory(self):# 添加栏目接口的 URL 地址url = 'http://192.168.121.112:8080/cms/manage/saveModuleCategory.do'# 请求头,告诉服务器我们发送的是表单数据headers = {'Content-type':'application/x-www-form-urlencoded'}# 添加栏目时需要传递的数据data = {'id': '',  # 新栏目的 ID,添加时通常为空'categoryName': '2',  # 栏目名称'parentId': '',  # 父栏目 ID,通常为空表示顶级栏目'categoryCode': '2',  # 栏目编码'categoryDesc': '2',  # 栏目描述'keyTitle': '2',  # SEO 标题'keyWords': '2',  # SEO 关键字'keyDesc': '2'  # SEO 描述}# 使用 test01_login 方法获取登录后的 cookiescookies = self.test01_login()# 发送 POST 请求,创建栏目resp = requests.post(url=url, headers=headers, data=data, cookies=cookies)# 打印接口返回的 JSON 数据(操作结果)print(resp.json())

七、调用 

用main方法进行调用这个类去运行就好了 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词