接口自动化PO框架

embedded/2025/1/14 21:49:53/

接口测试之接口po框架

一、新建一个项目

 接口自动化框架设计实战:

第一包:config

案例:

#登录接口
dl_url = 'http://cms.duoceshi.cn/cms/manage/loginJump.do'
dl_d = {'userAccount': 'admin', 'loginPwd': '123456'}
dl_h = "Content-Type:application/x-www-form-urlencoded"#栏目接口
lm_url= "http://cms.duoceshi.cn/cms/manage/findCategoryByPage.do"
lm_d= {'parentId': '', 'categoryName': '', 'page': '1'}
lm_h = {"Content-Type": "application/x-www-form-urlencoded"}

第二包:api  组建接口包

#组建并发送接口
import requests
from  config.cms_config import  *
s=requests.Session()
class  Cms(object):def __init__(self):passdef dl(self):jk=s.post(url=dl_url,data=dl_d,json=dl_h)#print(jk.text)return  jkdef lm(self):jk1=s.post(url=lm_url,data=lm_d,json=lm_h)# print(jk1.text)return  jk1
if __name__ == '__main__':c=Cms()c.dl()c.lm()

第三个包:testcase存放用例,

import  unittest
from  api.cms_api import  *
class  Cms_Test(unittest.TestCase):def setUp(self) -> None:passdef tearDown(self) -> None:passdef  test001(self):s=Cms().dl()def  test002(self):l=Cms().lm()
if __name__ == '__main__':V=Cms_Test()V.test001()V.test002()

第四个包:report包  报告包

 第五包:utils包工具类包

第六个包:

from utils.HTMLTestRunner3_New import  HTMLTestRunner
import unittest,os,time
from  utils.mail3 import SendMail
xm_path=os.path.join(os.path.abspath(os.path.dirname(os.getcwd())))  #项目路径
print(xm_path)
test_path=os.path.join(os.path.abspath(os.path.dirname(os.getcwd())),'testcase')#测试用例路径
print(test_path)
report_path=os.path.join(os.path.abspath(os.path.dirname(os.getcwd())),'report')#报告路径
print(report_path)
new=time.strftime('%y-%m-%d %H-%M-%S')
f=report_path+"/"+str(new)+'_report.html'
def  bg(x):d=unittest.TestLoader().discover(start_dir=test_path,pattern=x)file=open(f,"wb")r=HTMLTestRunner(stream=file,description="用例执行情况",tester='hz',title="cms接口po框架")r.run(d)
def  yj():fs=SendMail(send_msg=f,attachment=f)fs.send_mail()
if __name__ == '__main__':bg("cms*.py")yj()

二、邮箱设置

(1)

 

 

LTTYRPXNHUVXSJVG

 查看邮件:

 断言:

接口断言

分类: 教学笔记 / 教学笔记二

 参考:

讲解稿:
首先在pycharm里新建一个项目,然后构建6个包,分别是api构建包、conf配置包、report报告包、run运行包、testcase用例包以及utils工具包。
其中api包用来组建并发送接口请求,conf包用来存放所有接口的入参信息,report包用来放置运行所有测试用例生成的报告,run包用来自动加载所有的测试用例、并且运行,testcase包用来继承unittest单元测试框架、组建接口测试用例,utils包用来存放发送邮件和生成报告模块。
然后,在conf包中把参数值都写好,比如url、data和header;在api包中组建接口和发送接口请求,导入request和conf,参数名引用conf里面的,创建一个全局的session对象用来保持会话的状态和管理上下文,把各个接口的请求方式编写出来,同时用rep.json()来转换,全部封装在一个类里;在testcase包中组建测试用例导入unittest模块、api里面的Cms类,定义一个类,且继承unittest中的TestCase,用匿名对象来调用实例方法,然后进行断言,需要注意的是断言内容要与结果完全一致;最后,在run包里导入unittest、time、mail3、HTMLTestRunner,定义项目的路径、用例的路径、测试报告的名称、定义自动搜索用例,执行测试用例并生成报告,其中的时间戳也需要注意一下;此时,测试用例报告就会在report包里,最后用谷歌浏览器打开就可以查看了。


http://www.ppmy.cn/embedded/153939.html

相关文章

03_Redis基本操作

1.Redis查询命令 1.1 官网命查询命令 为了便于学习Redis,官方将其用于操作不同数据类型的命令进行了分类整理。你可以通过访问Redis官方网站上的命令参考页面https://redis.io/commands来查阅这些分组的命令,这有助于更系统地理解和使用Redis的各项功能。 1.2 HELP查询命令…

从 SQL 语句到数据库操作

1. SQL 语句分类 数据定义语言 DDL : 用于定义或修改数据库中的结构,如:创建、修改、删除数据库对象。create、drop alter 数据操作语言 DML : 用于添加、删除、更新数据库中的数据。select、insert alter、drop 数据控制语言 D…

CSS3的aria-hidden学习

前言 aria-hidden 属性可用于隐藏非交互内容,使其在无障碍 API 中不可见。即当aria-hidden"true" 添加到一个元素会将该元素及其所有子元素从无障碍树中移除,这可以通过隐藏来改善辅助技术用户的体验: 纯装饰性内容,如…

42_Lua table表

Lua中的table是一种极其灵活且强大的数据结构,它是Lua语言中唯一的一种复合数据类型。它既可以作为数组(array),也可以作为字典(dictionary)来使用,并且可以用于构建其他复杂的数据结构,如记录、集合、队列等。下面我将详细介绍Lua表的基本概念、创建方式、操作方法以及…

Oracle 创建index时 自动收集index 统计信息 但partition index要特别注意

Index drop 后重建可以自动收集index 统计信息 但如果 unusable index,如果这个index是partition 的,在rebuild index partition时 有个重大的问题,只是gather 了索引 partition上的statistics,没有gather 索引的 global stati…

状态模式详解与应用

状态模式(State Pattern),是一种行为型设计模式。它允许一个对象在其内部状态改变时改变它的行为,使得对象看起来似乎修改了它的类。通过将不同的行为封装在不同的状态类中,状态模式可以避免大量的条件判断语句&#x…

Golang——rune和byte

本文详细介绍Golang中的两种字符类型rune和byte,介绍他们的区别,编码方式和简单的使用。 文章目录 byte 类型rune 类型UTF-8 与 Unicode 的关系byte和rune的主要区别Go的默认编码方式遍历方式遍历 byte遍历 rune补充 字符还原从 byte 序列还原字符串从 r…

C# OpenCV机器视觉:转速测量

在一个看似平常却又暗藏神秘能量的日子里,阿杰正在他那充满科技感的实验室里,对着一堆奇奇怪怪的仪器发呆。突然,手机铃声如一道凌厉的剑气划破寂静,原来是工厂的赵厂长打来的紧急电话:“阿杰啊,咱们工厂新…