资讯专栏INFORMATION COLUMN

python+requests+Excel+Jenkins接口自动化

ashe / 1403人阅读

摘要:总结大部分人做接口自动化的流程后,发现基本上都是做接口请求用来存储用例生成测试报告完成定时任务。其实在完成这个流程的过程中,代码编写只占用了一小部分的时间,大部分的时间都浪费在搭建环境和用例编写上。可以通过这个方式去转换一些有问题的。

总结大部分人做接口自动化的流程后,发现基本上都是:python + requests做接口请求;Excel用来存储用例;HTMLTestRunner生成测试报告;Jenkins完成定时任务。

其实在完成这个流程的过程中,代码编写只占用了一小部分的时间,大部分的时间都浪费在搭建环境和用例编写上。这里我记录一些遇到的问题。

一、接口请求
(1)配置请求方法:get 和 post 方法简单封装,header中参数设置

# _*_coding:utf-8 _*
import requests

#get请求
def get(url,querystring):
    headers = requestHeader()
    response = requests.request("GET", url, headers=headers, params=querystring)
    # print response.url
    return response

#post请求
def post(url,payload,querystring):
    headers = requestHeader()
    response = requests.request("POST", url, data=payload, headers=headers, params=querystring)
    # print response.url
    return response

#设置请求的header
def requestHeader():
    headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache"
    }
    return headers

(2)针对post请求的body,开始时使用的时text的dict去请求,请求错误总是返回:"请求参数错误",后来使用postman进行调试,直接复制已经转换成json格式的body传参进行请求,终于成功。

可以通过这个方式去转换一些有问题的body。

(3)body转换为json的另一种方式:通过ast模块进行转换(推荐)

import ast
caseParams         =     ast.literal_eval(caseParams)

(4)通过openpyxl模块获取用例Excel

#用例名
caseName     =     caseFile.getCellVaule(ws,rowIndex,1)
#url
caseUrl     =     caseFile.getCellVaule(ws,rowIndex,3)
#请求方式
caseMethod     =     caseFile.getCellVaule(ws,rowIndex,4)
#参数
caseParams     =     caseFile.getCellVaule(ws,rowIndex,5)

备注:在获取用例信息的过程中,需要对一些参数进行容错
A:是否有参数,若无参数,需传空;
B:get参数和post body需要分开处理:
get的参数是以 "¶m"形式明文拼接在url中;

#将请求参数转换为json格式
caseParams     =     ast.literal_eval(caseParams)
keys         =     dict(caseParams).keys()
values         =     dict(caseParams).values()
for x in xrange(0,len(keys)):
  tempQuery[keys[x]] = values[x]

post的body需要放在dict中进行传参;

caseParams         =     ast.literal_eval(caseParams)

(5)分割所需的参数,将结果写入到文件内

#请求返回的内容,转换为json格式
text             =     json.loads(response.text)
                caseFile.setCellValue(ws,rowIndex,6,response.text)

#URL请求耗时
spendTime         =     response.elapsed.total_seconds()
                caseFile.setCellValue(ws,rowIndex,7,spendTime)

#请求结果状态
statue             =     response.status_code
                caseFile.setCellValue(ws,rowIndex,8,statue)
self.assertEqual(statue, 200)

(6)将请求结果写入html文件,并展示

(7)配置到Jenkins,定时执行查看接口的可达性

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44924.html

相关文章

  • 动化测试到底怎么开展?

    摘要:一概述在创业公司里,项目都比较赶,测试人员也是疲于测试功能模块,基本没空去写什么自动化测试,以提升回归测试的效率。三做自动化测试的动机最大的动机提升回归测试的效率。重要业务接口的自动化测试,尽量做到多而全,争取全面覆盖。 ...

    马忠志 评论0 收藏0
  • Python动化必会技能-Excel文件读取

    摘要:重点在自动化测试过程中,经常需要使用文件来存储测试用例,那么在表格内设计好了测试用例数据后,如何通过自动化读取呢此时就需要测试小姐姐动手写代码了本文主要介绍通过来读取表格数据。 ...

    187J3X1 评论0 收藏0
  • Windows环境 Git提交代码到Github(附:python 读写Excel文件Demo)

    摘要:目录提交代码常用命令读写文件一常用命令从远程仓库克隆整个项目代码列出当前目录所有还没有被管理的文件和被管理且被修改但还未提交的文件提交全部未跟踪和修改文件,但是不处理删除文件将暂存区里的改动给提交到本地的版本库参数表示可以直接输入后面的 目录 Git提交代码常用命令 python 读写Excel文件Demo 一、Git常用命令 git clone #从远程仓库克隆整个项目代码sh...

    Drinkey 评论0 收藏0
  • 第一篇(从django后台解析excel数据批量导入数据库)

    摘要:总结整个过程的难点在于获取文件对象,从数据中取值然后在按取出,这样我们就可以从后台上传文件,然后进行批量导入数据库,其他数据格式只需要改和中的数据字段就可以 第一篇(从django后台解析excel数据批量导入数据库) 文章会在github中持续更新 作者: knthony github 联系我 1.django 如何从后台上传excel中批量解析数据 要从django后台导入...

    2i18ns 评论0 收藏0
  • 聊聊动化测试里的数据驱动和关键字驱动

    摘要:关键字驱动的自动化测试框架建立在数据驱动手段之上,表中包含指令关键词,而不只是数据。关键字驱动的自动化测试是对数据驱动的自动化测试的有效改进和补充。 今天,我们来...

    shiina 评论0 收藏0

发表评论

0条评论

ashe

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<