百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

一文带你深入剖析接口自动化测试项目实战案例:Python+requests

off999 2024-12-09 16:20 17 浏览 0 评论

什么是接口测试?

接口测试是对程序之间的相互调用关系的测试,检查通过调用某一个程序,得到的数据是否正确的过程。

在用程序发起接口请求前,我们需要了解一个http请求包含哪些内容?(因为http请求决定了做web接口测试要输入哪些数据)

(一)请求行

(1)URL

(2)请求方法

(3)协议版本

(二)请求头

(三)请求体:post请求包含部分,get请求的数据是包含URL中的

了解了http请求包含哪些内容后,我们就知道了,发送请求时包含哪些参数

(1)请求的服务器地址或域名:URL

(2)请求的资源地址:URI(文件在服务器上的位置)

(3)请求头

(4)请求体

了解完http请求后,那么如果我们用python去发送一个请求应该有哪些步骤呢?

(一)在发起请求前需要安装requets库,win+R 打开命令行模式,输入 pip install requests

(二)步骤:

1.输入URL

2.输入参数

3.发送请求

4.执行获取到响应

5.断言

(三)根据以上的步骤我们一起去发起一个请求

(1)本案例是放在public_class.api_public10 这个包下中的,按照本案例file---》new--》Python Package 文件名为public_class,选中public_class右键》new--》Python Package 文件名为api_public10,选中api_public10 右键new--》python file 文件名为post_request

import  requests # 引入requests库
url='http://localhost:8080/background_login' 
data={'login_name':'admin','login_pwd':'pwd'}
    #发送请求
respones=requests.post(url,data)#输入参数 url和data,发送请求,并得到响应
    # print(respones)
result_code=respones.json()#得到响应中的数据
# print(result_code)
code={'code':'0000'}#字典
if result_code['code']==code['code']:#字典取值 用键code取值 0000
    print("执行成功")
else:
    print("执行失败")

(四)在pycharm编辑器下输入域以上数据右键run,发起单条测试用例就执行成功了

在实际工作中,我们不可能一条用例一条用例的写,肯定是多条用例自动执行的,那么如何实现呢?我们用读取excel表格中测试用例的方式发起多个请求

(一)读取excel表格中的测试,在读取excel表格同样需要用pip install openpyxl 安装读取文件的库

(1)file---》new--》python file 文件read_excel10

(2)本案例是放在public_class.api_public10 这个包下中的,按照本案例file---》new--》Python Package 文件名为public_class,选中public_class右键》new--》Python Package 文件名为api_public10,选中api_public10 右键new--》python file 文件read_excel10

import openpyxl
#1.找到excel表格
#2.找到其中的一个工作表sheet1#
3.找到行和列,并获取到行和列的值的def read_cases(file_name,sheet):
    workbook=openpyxl.load_workbook(file_name)
    sheet1=workbook[sheet]
    print(sheet1)
    cases=sheet1.max_row
    list_cases=[]
    for case in range(2,cases+1):
        dict_case=dict(id=sheet1.cell(row=case,column=1).value,        url=sheet1.cell(row=case,column=2).value,        data=sheet1.cell(row=case,column=3).value,        expect=sheet1.cell(row=case,column=4).value)
        # print(id,url,data,expect)        list_cases.append(dict_case)
    return list_cases

(二)封装post请求

(1)本案例是放在public_class.api_public10 这个包下中的,按照本案例file---》new--》Python Package 文件名为public_class,选中public_class右键》new--》Python Package 文件名为api_public10,选中api_public10 右键new--》python file 文件post_request10

import  requests
def post_respons(url,data):#形参,调用时传实际参数
    #发送请求
    respones=requests.post(url,data)
    result_code=respones.json()
    return result_code

(三)调用读取excel表格的函数和post请求的函数,发送请求并进行结果的对比

(1)本案例是放在public_class.api_public10 这个包下中的,按照本案例file---》new--》Python Package 文件名为public_class,选中public_class右键》new--》Python Package 文件名为api_public10,选中api_public10 右键new--》python file 文件compare_result10

from public_class.api_public10 import read_excel10 # 从public_class.api_public10包下引入read_excel10 这个文件
from public_class.api_public10 import post_request10

import openpyxl
cases=read_excel10.read_cases('InterfaceCase.xlsx','test')#调用read_cases('InterfaceCase.xlsx','test')里面的参数为实参
# print(cases)
#url ,data
for case in cases:#遍历cases中的数据
    id=case.get('id')#得到 cases 中的id
    url=case.get('url')#得到 cases 中的url
    data=case.get('data')#得到 cases 中的data
    # print(type(data))
    data=eval(data)#转化成字典格式
    expect=case.get('expect')
    expect = eval(expect)#转化成字典格式
    # expect=dict(expect)
   # print(url,data,expect)
    real_result=post_request10.post_respons(url,data)#用post_request10.post_respons(url,data)方式调用,url和data为实际参数
    #print(real_result)
    if expect['code']==real_result['code']:#字典格式,通过key得到value
       # print('执行成功')
        result='成功'
    else:
        #print('执行失败')
        result = '失败'
    workbook=openpyxl.load_workbook('InterfaceCase.xlsx')#加载excel表格,注意在加载InterfaceCase.xlsx'文件时,表格不能处于打开的状态
    sheet=workbook['test']#获取到其中的工作表test
    sheet.cell(id+1,5).value=result #把实际结果填入到表格中的
    workbook.save('InterfaceCase.xlsx')#保存表格  

通过以上的操作步骤,我们实现了读取excel表格,发送post请求,对比结果,把结果回写到excel表格中

相关推荐

电脑显示器分辨率怎么调(显示分辨率无法调整)

1、以win7为例,首先右键点击桌面,在右键菜单中直接显示了屏幕分辨率的选项,用鼠标点击一下这个选项。2、在分辨率设置选项页面中,有一个分辨率的选项,点击一下这个选项,上面默认显示的数值是你现在的屏幕...

8系统(8系统点检控制包含什么)

WIndows8系统是微软目前最新的操作系统,Moto的图形界面设计,使很多已经习惯于早期windows系统的用户难以接受,Windows8是一个向平板和桌面系统妥协的产物,存在着相当多的利弊。...

电脑软件管家(电脑软件管家在哪里找到)

电脑管家有着最大的安全云库,全新的杀毒引擎,深度清理电脑垃圾,为电脑重回巅峰状态,更有账号宝专版,10倍提升QQ防盗号能力,是很好用的。就自己而言,在电脑上用的是腾讯电脑管家这个第三方系统安全软件,管...

office2010破解(office2010破解密钥)
  • office2010破解(office2010破解密钥)
  • office2010破解(office2010破解密钥)
  • office2010破解(office2010破解密钥)
  • office2010破解(office2010破解密钥)
迅雷种子搜索器(迅雷种子搜索器手机版下载)

    迅雷种子搜索方法:    1.在开始菜单栏或者到文件的安装路径文件夹中找到P2P种子搜索器。&nb...

手机怎么解压文件(苹果手机怎么解压文件)

手机解压文件方法:1、首先,在手机中找到文件管理,打开文件管理。2、打开文件管理之后找到压缩包,然后打开。3、打开安装包之后,选择需要的文件,。4、接下来找到“解压至”,点击“解压至”。5、点击之后,...

虚拟机安装centos7(虚拟机安装centos7图形界面)

安装CentOS7在虚拟机中,您可以按照以下步骤操作:1.下载CentOS7的ISO映像文件。2.打开虚拟机软件(如VMware、VirtualBox等)并创建一个新的虚拟机。3.在虚拟机创...

电脑老是重启(电脑老是重启什么原因造成的)

电脑由于工作环境积尘与空气湿度过大,经常使主板的接插件部分受潮产生氧化;特别是内存条插座、PCI扩展槽、键盘鼠标接口、LOT接口、CMOS电池压盒、ATX电源插座等。一旦它们出现接触不良现象,很容易出...

win8系统怎么重装系统(win8.1系统重装教程)

1、修改Cortana资源占用:按Windows按钮,输入regedit,打开注册表编辑器,找到以下路径:HKEY_LOCAL_MACHINE—SYSTEM—CurrentControlSet—Ser...

手机163邮箱app下载(163邮箱下载手机版官网 app)

163邮箱登录首页入口为http://mail.163.com/网易163免费邮箱--中文邮箱第一品牌.容量自动翻倍,支持50兆附件,免费开通手机号码邮箱赠送3G超大附件服务.支持各种客户端软件收发,...

win10此电脑怎么放在桌面上(wind10此电脑放桌面)
win10此电脑怎么放在桌面上(wind10此电脑放桌面)

步骤/方式1右键单击桌面空白处,点击个性化。步骤/方式2点击更改桌面图标。步骤/方式3把计算机勾选上。步骤/方式4即可把此电脑图标显示在桌面上。...

2025-11-08 14:03 off999

电脑配置怎么看在电脑上(电脑配置在电脑里怎么看)

查看电脑配置的方法有多种,以下是一些常见的方法:直接查看:在电脑桌面或操作系统中,找到“我的电脑”或“此电脑”,右键点击并选择“属性”,即可查看电脑的基本配置信息,包括CPU型号、内存大小、硬盘类型和...

电脑开机反复启动不起来(电脑开机反复重启开不了机怎么办)

1、先关闭主机总电源,电脑先关机吧,打开机箱,将内存条插槽两边的白色专卡口轻向下按,使内存条属弹出插槽。?2、取出内存条后,用干净的橡皮擦擦拭金手指或者用吹风机吹一吹。?3、然后将内存条对准插槽的卡口...

win10家庭版转专业版密钥(windows10家庭版升级到专业版密钥)

家庭版升级专业版密钥,需要付费购买获取不可以,家庭版密钥只是电脑还原时有效,重装系统就没有用了,可以看下面的方法。我是在淘宝买过几个不同系统的密钥都很好用,1-10元都买过,您进入搜索您需要系统的密钥...

安卓镜像下载(安卓镜像下载官网)

vmwareiso镜像文件可以从VMware官网下载。具体的下载步骤如下:1.打开VMware官网,进入产品下载页面。2.在产品下载页面,选择需要下载的VMware产品,比如VMwareWork...

取消回复欢迎 发表评论: