首页 > Web开发 > 详细

一个基于Behave框架的http接口测试实例

时间:2017-03-03 15:45:56      阅读:388      评论:0      收藏:0      [点我收藏+]

前言:本人没怎么做过http接口测试,只是最近学习了一下,Behave框架也是最近学习的,如果有不对的请各位大神指点,感谢!

1.1       接口准备

本次get请求的接口用的是百度接口:wd=搜索关键词;rn=结果条数

https://www.baidu.com/s?wd=python&rn=3

post请求的接口是引用了虫师的实例资源,出处如下:

http://www.cnblogs.com/fnng/p/4853996.html

1.2       实例详解

项目目录结构如下:

.../APItest

.../APItest/HTTPAPI

.../APItest/HTTPAPI/http case.feature

.../APItest/HTTPAPI/steps

.../APItest/HTTPAPI/steps/httptest.py

 

http case.feature用Scenario Outline设计测试用例,测三个接口,分别是带参的get请求、不带参的get请求,和post请求,内容如下:

Feature: http api testing
  Scenario Outline: for http api testing
    Given request type is <request_type>
    When I input HTTP api <url> and <parametes>
    Then The status code is 200

   Examples: all request type
    |request_type|url                    |parametes|
    |get         |https://www.baidu.com/s|{‘wd‘:‘python‘,‘rn‘:‘3‘}|
    |get         |https://www.baidu.com/s|{}                      |
    |post        |http://127.0.0.1:5000/login|{‘username‘:‘zhangsan‘,‘password‘:‘123‘}|

 

 

 

httptest.py,处理http请求的类,这里我只是简单地写了一下一般的get和post请求,以后可以优化。代码如下:

# coding:utf-8
__author__ = helen

import requests
from behave import *

@Given(request type is {request_type})
def step_impl(context,request_type):
    context.request_type = request_type

@When(I input HTTP api {url} and {parameters})
def step_impl(context,url,parameters):
    context.url = url
    context.parameters = parameters

@Then(The status code is 200)
def step_impl(context):
    try:
        if context.request_type==get:
            r = requests.get(url=context.url,params=context.parameters)
        elif context.request_type == post:
            r = requests.post(url=context.url,data=context.parameters)
        assert r.status_code == 200
    except requests.HTTPError,e:
        e.strerror
        e.args

 


 

1.3       执行测试

我的APItest项目已配置在jenkins,所以我在jenkins里面直接构建即可,我们可以在执行结果的控制台中查看到执行输出内容,如下图:

 

 技术分享

 

当然,你也可以在cmd命令行中直接执行,如下图所示:

 技术分享

 

 

你还可以把执行记录保存在文件中,如下图:

 技术分享

 

然后在D盘中我们就可以看到生成的test.txt文件,里面的内容与cmd的输出一至。

一个基于Behave框架的http接口测试实例

原文:http://www.cnblogs.com/helenMemery/p/6496922.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!