Python+excel实现的简单接口自动化 V0.1

好久没写博客了。、最近忙着工作以及新工作的事。、

看了下以前写的简单接口自动化,拿出来总结下,也算记录下学习成果

先来贴一下最后的结果,结果是写在原来的excel中

执行完毕后,会将结果写入到“状态”列;

执行通过的话,如果返回的json有message写入“response”列,如果执行失败,则会将返回的json也写入其中

前期准备:

在excel中依次填上接口、请求类型、需要传的数据、期望返回的状态码以及该接口的说明

代码如下,写的很简陋,甚至都没定义方法什么的,姑且称之为V0.1   后面学有所得再深入修改

#coding:utf-8
import requests
import json
import xlrd
import os
from xlutils.copy import copy

excel = ‘apidemo.xls‘   #定义存放用例的excel路径,当前路径下
data = xlrd.open_workbook(excel)
host = ‘http://xxxxxxx/api‘#测试服,这个自己写吧
headers = {‘Accept-Version‘:‘v2‘,‘content-type‘: ‘application/json‘}  #定义headers

result = []  #用来存放验证结果
responseValue = []  #存放返回的数据
table = data.sheet_by_index(0)
nrow = table.nrows  #获取行数
for i in range(1,nrow): #循环获取每行中的数据
    requestMethod = table.cell(i,2).value   #方法,post、get、delete
    url = host + table.cell(i,1).value  #拼接url
    payload = table.cell(i,3).value #定义要传的值
    ex = table.cell(i,4).value  #获取期望的返回值,目前是用status_code来判断
    if requestMethod == ‘get‘:  #不同的方法发不同的请求
        r = requests.get(url,headers = headers)
    elif requestMethod == ‘post‘:
        r = requests.post(url,data = payload,headers = headers)
    elif requestMethod == ‘delete‘:
        r = requests.delete(url,data = payload,headers = headers)
    if r.status_code == ex:  #如果和期望值一样,case通过
        result.append(‘true‘)
        if ‘message‘ in r.json().keys():  #这个看情况而定吧,这边例如账号密码错误也是在message里的
            responseValue.append(r.json()[‘message‘])  #将message先存入response
        else:
            responseValue.append(‘‘)
    else:
        result.append(‘false‘) #如果结果不对的话,如果有message就写,没有就全部写入
        if ‘message‘ in r.json().keys():
            responseValue.append(r.json()[‘message‘])
        else:
            responseValue.append(json.dumps(r.json(),ensure_ascii=False))  #不解码无法写入
    r.close()
    print(‘共有%d个url,当第%d个执行完毕‘%(nrow-1,i))
book = copy(data)
sheet1 = book.get_sheet(0)  #copy原来的excel
for j in range(1,nrow):#将结果写入到对应的表格中  #将结果和response都写入到复制的工作表中
    sheet1.write(j,5,result[j-1])
    sheet1.write(j,6,responseValue[j-1])
os.remove(excel)
book.save(excel)    #移除原来的excel,保存新的excel

代码中获取返回的message,要看实际情况,我这边是开发将错误都通过message返回,比如请求的数据不存在,请求注册的手机号已经注册过等等

代码中存在很多不足,比如没有捕获异常,如果有异常出现就完蛋了。、

另外只对返回的状态码进行了判断,感觉还有很多可以做的事,比如对返回的json的结构进行判断,对数据库进行查询,比如delete的请求,接口返回成功,但是不一定数据库真的已经删除了

还有之前用appium时用到的unittest和HTMLTestRunner,感觉都可以和这个一起使用;

如果那样的话,感觉可以定制case,针对每个接口的不同功能,做针对性的判断

时间: 2024-10-18 14:37:02

Python+excel实现的简单接口自动化 V0.1的相关文章

python(pytest)+allure+jenkins 实现接口自动化的思路

效果图镇楼: 上述各模块作用: python(pytest): 1:用于读测试用例(本次用例写在csv文件中) 2:环境配置相关 3:提取1中的测试数据,组成请求体 4:发送请求 5:获取结果 6:断言生成测试结果 allure: 将测试结果以页面形式展示出来 jenkins: 1:集成pytest和allure 2:参数化构建 3:持续定期构建 先写这些了,下班.. 原文地址:https://www.cnblogs.com/wanghouxuan/p/10367074.html

Python自动化测试例子--一个简单的自动化测试用例脚本--批量执行测试用例

#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common import keys from selenium.webdriver.support import select from selenium.common import exceptions import unittest,time,re class Bai

python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告

前言 1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请求参数 运行完后,重新生成一个excel报告,结果写入excel 用unittest+ddt数据驱动模式执行 HTMLTestRunner生成可视化的html报告 对于没有关联的单个接口请求是可以批量执行的,需要登录的话写到setUpclass里的session里保持cookies token关联的

python接口自动化框架

基于 python 的接口测试框架 接口测试 · jphtmt · 于 5 月前发布 · 最后由 jphtmt 于 4 月前回复 · 3553 次阅读 项目背景 公司内部的软件采用B/S架构,管理实验室数据,实现数据的存储和分析统计.大部分是数据的增删改查,由于还在开发阶段,所以UI界面的变化非常快,之前尝试过用python+selenium进行UI自动化测试,后来发现今天刚写好的脚本第二天前端就改了页面,又得重新去定位元素什么的,消耗大量的精力与时间维护自动化脚本.针对此种情况,对接口测试较为

关于接口自动化的那些事 - 基于 Python

网络请求模拟小技巧 在学习了一段时间的Python语言后,咱也大概对Python的语法和逻辑有了一定的积累,接下来,可以为接口自动化测试开始尝试做一些比较简单的准备工作啦~跟着我一起来来来~ 扩展库requests 一般来说接口测试都是基于HTTP和HTTPS的网络请求,Python中有很多自带原生库和扩展库均可以实现.Python模拟HTTP请求有两种方式,一种是使用httplib模块,一种是使用requests模块,我个人比较倾向于使用requests库,该库把请求的框架都搭建好了,使用简洁

python接口自动化2-发送post请求

前言 发送post的请求参考例子很简单,实际遇到的情况却是很复杂的,首先第一个post请求肯定是登录了,但登录是最难处理的.登录问题解决了,后面都简单了. 一.查看官方文档 1.学习一个新的模块,其实不用去百度什么的,直接用help函数就能查看相关注释和案例内容. >>import requests >>help(requests) 2.查看python发送get和post请求的案例 >>> import requests       >>> r

python+requests接口自动化完整项目设计源码

前言 有很多小伙伴吵着要完整的项目源码,完整的项目属于公司内部的代码,这个是没法分享的,违法职业道德了,就算别人分享了,也只适用于本公司内部的业务. 所以用例的代码还是得自己去一个个写,我只能分享项目框架,只能帮你们到这了. 一.项目结构 1.新建一个工程(一定要创建工程),工程名称自己定义,如:yoyo_jiekou 2.在工程的跟目录新建一个脚本:run_main.py,用来执行全部用例 3.在工程下创建以下几个pakage包: --case:这个包放test开头的测试用例,也可以放一些封装

python接口自动化5-Json数据处理

前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理. 一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的参数就行,这时候就需要json来解析返回的数据了. 一.json模块简介 1.Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式,常用于http请求中 2.可以用help(json),查看对应的源码注释内容 Encoding basic P

python接口自动化10-token登录

前言 有些登录不是用cookie来验证的,是用token参数来判断是否登录. token传参有两种一种是放在请求头里,本质上是跟cookie是一样的,只是换个单词而已:另外一种是在url请求参数里,这种更直观. 一.登录返回token 1.如下图的这个登录,无cookies 2.但是登录成功后有返回token 二.请求头带token 1.登录成功后继续操作其它页面,发现post请求的请求头,都会带token参数 2.这种请求其实比cookie更简单,直接把登录后的token放到头部就行 三.to