• 1
  • 0
分享

1、引言

关于接口测试,这针对大部分的测试工程师来说,都是必备的技能,

而且,关于接口测试, 测试工程师从初探到成长的必经之路:

 接口测试理解,→接口测试方法学习→ 单接口测试工具学习→接口自动化平台/工具学习→接口自动化脚本设计/编写→ 接口自动化框架设计→接口自动化平台设计/编码。

按照这个流程, 你可以对照,你现在的接口测试等级,以及,你希望需要提升的方向。

而今天分享的内容,是接口自动化框架的设计。

由于接口测试方法, 接口测试工具的学习,都很简单, 所以,我也不做过多的赘述,

我们把更多的精力,投入到需要提升的技能上。

由于自动化框架的设计,需要根据项目来进行, 

这里,我就以某一个项目为Demo,进行http_service 配置。

2、代码示例

由于代码很简单, 主要思路:

    1、log日志;

    2、封装常用的请求类型:get、put、post、delete...

    3、做断言,抛出异常

了解了heetp_service的配置, 我们就直接看代码

# -*- coding:utf-8 -*-
# @Time   : 2019-10-23
# @Author : Carl_奕然
 
import requests
from Interface_python3.public.log import Log
 
 #日志
log = Log("HTTP").get_logger()
 
class HTTP(object):
    """网络请求封装"""
 
    def __init__(self):
        # self.log = Log("HTTP").get_logger()
 
    def get(self, url, **kwargs):
        params = kwargs.get('params')
        headers = kwargs.get('headers')
        cookies = kwargs.get('cookies')
        try:
            r = requests.get(url, params=params, headers=headers, cookies=cookies, timeout=15)
            return r
        except Exception as e:
            self.log.error('get请求出错:%s' % e)
 
    def put(self, url, **kwargs):
        params = kwargs.get('params')
        headers = kwargs.get('headers')
        data = kwargs.get('data')
        json = kwargs.get('json')
        cookies = kwargs.get('cookies')
        try:
            r = requests.put(url, params=params, headers=headers, data=data, json=json, cookies=cookies, timeout=30)
            return r
        except Exception as e:
            self.log.error("put请求出错:%s" % e)
 
    def post(self, url, **kwargs):
        params = kwargs.get('params')
        headers = kwargs.get('headers')
        data = kwargs.get('data')
        json = kwargs.get('json')
        cookies = kwargs.get('cookies')
        try:
            r = requests.post(url, params=params, headers=headers, data=data, json=json, cookies=cookies, timeout=100)
            return r
        except Exception as e:
            self.log.error('post请求出错:%s' % e)
 
    def delete(self, url, **kwargs):
        params = kwargs.get('params')
        headers = kwargs.get('headers')
        data = kwargs.get('data')
        json = kwargs.get('json')
        cookies = kwargs.get('cookies')
        try:
            r = requests.delete(url, params=params, headers=headers, data=data, json=json, cookies=cookies, timeout=15)
            return r
        except Exception as e:
            self.log.error('detele请求出错:%s' % e)

你看,这段代码, 并没有任何难度, 并且,逻辑也比较清晰。

所以, 其实设计框架, 并不是"那么难" 嘛。

只要你学好了编程语言, 并且做过几年的开发(我说的这几年,并不是一直 复制、粘贴),并且好了解使用工具的原理, 那么,你就可以设计一个你认为可行的接口自动化框架。

小屌丝:别听鱼哥胡扯, 设计 一个接口自动化框架,并不是很容易的事,

小鱼:何出此言?

小屌丝:你这仅仅是框架的一个配置, 还有好多配置的。

小鱼:....

u=1314434674,2362041459&fm=253&fmt=auto&app=138&f=GIF.gif

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 普通的移动app是需要安装的,但是绝大部分的app不会经常使用,但仍然会占用手机存储空间,所以开始出现免安装app,微信小程序实际是一种免安装的app。类似的比如华为、小米等手机厂商推出的快应用、支付宝小程序。微信小程序实际是运行在微信之上。小程序的类网页经过微信翻译之后以http数据的形式和服务器进行交互。小程序无法脱离微信来进行使用。微信小程序的页面可以包含:1、小程序页面(WXML+WXSS)2、M页页面(H5移动网页)3、toast信息(过一段时间会自动消失的信息,比如登录成功的提示信息,1、2秒后自动消失)4、弹窗微信小程序功能测试微信小程序分为三个版本:1、开发版2、体验版(需要在...
            8 8 1419
            分享
          • 摘要:企业老板和开发人员必须牢记,现代用户可能非常挑剔和苛刻,他们必须尽最大努力满足所有用户的期望。解决这个问题的最好方法是定期进行可用性测试。手机应用每天都在发布。应用商店提供数以百万计的移动应用版本,努力满足所有可能的需求,满足任何口味。你的手机应用是否拥有出色且独特的功能,但用户数量仍然很低?营销噱头不是答案。是时候关注可用性了。用户选择下载某个应用程序是为了执行某些任务或解决某个特定问题。他们在寻找解决方案,而不是额外的问题,如不全面的菜单或元素搜索。如果一款应用的设计并不直观,并且用户所需要的UI元素位于用户意想不到的位置,他们通常不会浪费时间去了解如何使用这款应用;他们只是卸载它,...
            1 0 797
            分享
          •   测试行业发展前景大猜想,究竟是坚守阵地还是灵活变通,点击下方链接填写调查问卷预测一拨吧!看看你的选择有没有影响到这个行业。链接:http://vote.51testing.com/  背景  近几年,各家商业银行均在大力发展自动化测试。在这一进程中,自动化测试的设计理念不断完善,新的技术不断应用,使得自动化测试资产的积累代价和维护代价不断降低,自动化测试资产的数量不断增长。  在短短几年间,自动化测试资产的数量已从数千增长至数万乃至数十万。  商业银行的自动化测试平台所管理的自动化测试案例往往数量庞大、隶属于不同的系统,自动化测试对象类型各不相同,这就要求对商业银行的自动化测试平台支持多种...
            0 0 1443
            分享
          •   前言  一般在面试的时候,经常会被问到关于什么是cookies、session、token,大多数面试官可以通过这几个概念基本上了解到你对接口请求方面是否了解或者工作中掌握的熟练程度。  看似很小的问题,但是背后却藏着大大的阴谋,今天跟着小编一起来了解下到底什么是cookies、session、token。  http无状态  我们都知道目前的http的协议是超文本传输协议,是属于服务器传世超文本到本地浏览器的传送协议,但是很多都不清楚http的无状态是什么意思。  其实无状态协议就是类似客户端发送一次http请求完成后,客户端再次发送一次http请求后,http协议不清楚第一次发送的和第...
            0 0 1088
            分享
          • 在我们做UI自动化的时候,经常会遇到图片验证码的问题。当开发不给咱们提供万能验证码,或者测试第三方网站比如知乎的时候,我们就需要自己去识别验证码。OCROCR是一种图像文字识别的技术,例如图中的验证码,我们用肉眼识别就是c5s3,但机器可不比咱们肉眼。所以我们要利用ocr技术,让我们的Python脚本自动通过图片识别出对应的文字。常见的识别类库在Python中其实有许多识别类库,这里只介绍博主自己实践过的成功率还不错的:百度ocr。简单的说,就是百度提供了一个SDK,让我们传入图片数据,从而拿到识别的结果。ocr的细节我们不需要关心。申请开通OCR首先我们得有一个百度账号,这个相信大家都有,没...
            0 2 6984
            分享
      • 51testing软件测试圈微信