广告
返回顶部
首页 > 资讯 > 后端开发 > Python >300行Python代码打造实用接口测试
  • 341
分享到

300行Python代码打造实用接口测试

接口代码测试 2023-01-31 02:01:07 341人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

300行python代码打造实用接口测试框架发表于:2017-6-29 09:47  作者:Leo Lee   来源:博客字体:大 中 小 | 上一篇 | 下一篇 | 打印 |我要投稿 | 推荐标签: Python 接口测试  在刚开始实现

300行python代码打造实用接口测试框架

发表于:2017-6-29 09:47  作者:Leo Lee   来源:博客

字体:大 中 小 | 上一篇 | 下一篇 | 打印 |我要投稿 | 推荐标签: Python 接口测试

  在刚开始实现apiTestEngine的时候,卡斯(kasi)提议做一个Java版的。对于这样的建议,我当然是拒绝的,瞬即回复了他,“人生苦短,回头是岸啊”。

  当然,我没好意思跟他说的是,我不会Java啊。不过最主要的原因嘛,还是因为Python的语法简洁,可以采用很少的代码量实现丰富的功能。

  有多简洁呢?

  刚在coveralls上看了下ApiTestEngine框架的代码统计行数,总行数只有268行,还不足300行。

15201284_201706281523521ULeY.jpg

  当然,这个行数指的是框架本身的Python代码行数,不包括示例注释的行数。从上图可以看出来,LINES列是文件总行数,RELEVANT列是实际的Python代码行数。例如ate/runner.py文件,注释的行数是远多于实际代码行数的。

  最极端的一个例子是,ate/testcase.py文件中的parse函数,示例注释行数35行,Python代码只有2行。

def parse(self, testcase_template):

   """ parse testcase_template, replace all variables with bind value.

   variables marker: ${variable}.

   @param (dict) testcase_template

       {

           "request": {

               "url": "Http://127.0.0.1:5000/api/users/${uid}",

               "method": "POST",

               "headers": {

                   "Content-Type": "application/JSON",

                   "authorization": "${authorization}",

                   "random": "${random}"

               },

               "body": "${data}"

           },

           "response": {

               "status_code": "${expected_status}"

           }

       }

   @return (dict) parsed testcase with bind values

       {

           "request": {

               "url": "http://127.0.0.1:5000/api/users/1000",

               "method": "POST",

               "headers": {

                   "Content-Type": "application/json",

                   "authorization": "a83De0ff8d2e896dbd8efb81ba14e17d",

                   "random": "A2dEx"

               },

               "body": '{"name": "user", "passWord": "123456"}'

           },

           "response": {

               "status_code": 201

           }

       }

   """

   return self.substitute(testcase_template)

  另外,如果算上单元测试用例的行数(731行),总的Python代码行数能达到1000行的样子。嗯,代码可以精简,但是单元测试覆盖率还是要保证的,不达到90%以上的单元测试覆盖率,真不好意思说自己做了开源项目啊。

15201284_201706281524391Uttj.jpg

  那这不足300行的Python代码,实际实现了哪些功能呢?

  对比下《接口自动化测试的最佳工程实践(ApiTestEngine)》中规划的特性,已经实现了大半(前六项),至少已经算是一个有模有样的接口测试框架了。

  支持API接口的多种请求方法,包括 GET/POST/HEAD/PUT/DELETE 等

  测试用例与代码分离,测试用例维护方式简洁优雅,支持YAML/JSON

  测试用例描述方式具有表现力,可采用简洁的方式描述输入参数和预期输出结果

  接口测试用例具有可复用性,便于创建复杂测试场景

  测试执行方式简单灵活,支持单接口调用测试、批量接口调用测试、定时任务执行测试

  具有可扩展性,便于扩展实现WEB平台化

  测试结果统计报告简洁清晰,附带详尽日志记录,包括接口请求耗时、请求响应数据等

  身兼多职,同时实现接口管理、接口自动化测试、接口性能测试(结合Locust)

  后面剩下的特性还在实现的过程中,但是可以预见得到,最后框架本身总的Python代码行数也不会超过500行。

  当然,单纯地比代码行数的确是没有什么意义,写得爽写得开心才是最重要的。

  最后引用下Guido van Rossum的语录:

  Life is short, Go Pythonic!


--结束END--

本文标题: 300行Python代码打造实用接口测试

本文链接: https://www.lsjlt.com/news/186739.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 300行Python代码打造实用接口测试
    300行Python代码打造实用接口测试框架发表于:2017-6-29 09:47  作者:Leo Lee   来源:博客字体:大 中 小 | 上一篇 | 下一篇 | 打印 |我要投稿 | 推荐标签: Python 接口测试  在刚开始实现...
    99+
    2023-01-31
    接口 代码 测试
  • 软件测试-接口测试-代码实现接口测试
    文章目录 1.request 1.1 request介绍 1.2 发送get请求 1.3 发送set请求 1.4 其...
    99+
    2023-09-06
    php json
  • python接口测试对修改密码接口进行压测
    目录引言测试脚本代码usercenter主要代码okaybase主要代码引言 做接口测试中,对于一般性的单业务接口测试很多工具可供选择,但是对于一些相关业务相关性的关联接口测试就比较...
    99+
    2022-11-11
  • Python3接口性能测试实例代码
    首先来看实例代码: # -*- coding:utf-8 -*- import requests import datetime import time import thr...
    99+
    2022-11-12
  • Python接口测试自动化的示例代码
    本篇内容主要讲解“Python接口测试自动化的示例代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python接口测试自动化的示例代码”吧!1、接口请求python 特别是 python 3....
    99+
    2023-06-16
  • 如何利用python进行接口测试
    这篇文章主要讲解了“如何利用python进行接口测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用python进行接口测试”吧!接口测试的坑第一个坑:POST 和 GET----GE...
    99+
    2023-06-30
  • python接口自动化测试数据和代码分离解析
    目录common中存放的是整个项目中公共使用的封装方法数据分离的第一步先找到工程项目路径数据分离的第二步封装一个读取yml文件的函数或类方法数据分离的第三步测试用例中引入数据并运行 ...
    99+
    2022-11-12
  • 利用python进行接口测试及类型介绍
    目录前言接口测试的坑接口类型快速上手接口测试接口文档分析编写接口用例执行接口测试前言 其实我觉得接口测试很简单,比一般的功能测试还简单(这话我先这样说,以后可能会删O(∩_&...
    99+
    2022-11-11
  • 使用Jmeter进行http接口测试的实践
    目录前言:一、开发接口测试案例的整体方案:二、接口自动化适用场景:三、接口测试环境准备四、创建工程:前言:   本文主要针对http接口进行测试,使用Jmeter工具实现。   Jm...
    99+
    2022-11-12
  • 使用JMeter进行接口高并发测试的实现
    目录官网启动操作步骤一般的网络接口测试,功能性测试postman较为好用,需要测试高并发的情况下,可以用Jmeter来进行测试,postman是串行,而Jmeter可以多线程并行测试...
    99+
    2022-11-13
  • jmeter接口测试之使用rsa算法加密解密的代码
    本篇介绍jmeter 使用rsa算法进行加密参数 如果测试过程中,部分接口采用了rsa加密算法,我们的jmeter 也是可以直接拿来调用的,不需要开发配合去掉加密代码! 直接上代码 ...
    99+
    2022-11-13
  • 干货丨Python接口测试自动化实战及代码示例:含get、post等方法
    引言:年初参与到一个后台系统开发的项目中,里面涉及了很多接口,我做为项目组测试人员,需要对这些接口进行测试,一开始使用 postman 工具测试,很是方便。但随着接口数量的增加,不光要执行手动点击测试,而且,一旦接口参数变动,都重新更改接口...
    99+
    2023-06-04
  • 利用Python实现网络测试的示例代码
    Speedtest CLI 专为软件开发人员、系统管理员和计算机爱好者等打造,是 Ookla® 提供技术支持的首款正式 Linux 本机 Speedtest 应用程序。 Sp...
    99+
    2022-11-10
  • Python项目实战:30行代码打造属于你的VX歌曲机器人
    前言想不想自己用所学的Python知识编写属于自己的一个VX机器人呢用Python的itchat库来实现,只有短短的几十行代码,欢迎大家一起交流,一起学习,共同进步导入第三方库...
    99+
    2023-06-02
  • 怎么用Python实现数据驱动的接口自动化测试
    这篇文章主要讲解了“怎么用Python实现数据驱动的接口自动化测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python实现数据驱动的接口自动化测试”吧!在接口测试的过程中,很多时...
    99+
    2023-06-17
  • 使用Python快速搭建接口自动化测试脚本实战总结
    ​测试需求介绍通常,在我们的项目中,我们的接口测试需求一般都是构造不同的请求数据,然后发送请求到接口,拿到接口返回后,对返回的字段进行提取和校验,最后将结果存放在excel表格中方便查阅。接口一般是http或https请求,发送的结构一般是...
    99+
    2023-05-14
    数据 Python 自动化测试
  • python实现接口自动化测试中如何使用pymysql直连数据库
    这篇文章给大家介绍python实现接口自动化测试中如何使用pymysql直连数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。实现步骤1 PyMySQL 安装启动命令行,联网的前提下键入命令: pip install...
    99+
    2023-06-04
  • 如何在 Java 编程中利用算法和接口打包实现更高效的代码?
    Java 是一种广泛应用的编程语言,具有高效、安全、可靠等优点。在 Java 编程中,算法和接口是两个重要的概念,它们可以帮助我们实现更高效的代码。本文将介绍如何利用算法和接口打包实现更高效的 Java 代码,并演示一些示例代码。 一、算法...
    99+
    2023-10-29
    编程算法 打包 接口
  • 怎么用一行Python代码实现ChatGPT接入微信机器人
    今天小编给大家分享一下怎么用一行Python代码实现ChatGPT接入微信机器人的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作