前言:本人没怎么做过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接口测试实例的更多相关文章

  1. 如何快速搭建一个基于ServiceStack框架的web服务

    ServiceStack是一个高性能的.NET Web Service 平台,能够简化开发高性能的REST (支持JSON,XML,JSV,HTML,MsgPack,ProtoBuf,CSV等消息格式 ...

  2. JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC

    接上篇<JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP.IOC)>,了解了Spring的核心(AOP.IOC)后,我们再来学习与实践Maven.Sp ...

  3. 【项目笔记】完成一个基于SSM框架的增删改查的模块后总结的问题

    最近为了准备新工作重新摸出了SSM框架,同时从0学习了JQuery,终于用一周做完了一个包括增删改查的模块(主要是属性太多了,其中一个类50+,复制粘贴耗时). 从中特意记下了几个遇到的问题,总结一下 ...

  4. 一个基于MINA框架应用的最简单例子

    直接上代码.关于原理和主要的API以后在说.先能跑通了在说. 主要的包:mina-core-2.0.0.jar[到官网上下载完整项目包里面还有文档和依赖包],jcl-over-slf4j-1.5.11 ...

  5. 分享一个基于ssm框架下的webService接口开发

    首先肯定是导入相关jar包 cxf-core-3.1.9.jar cxf-rt-bindings-soap-3.1.9.jar cxf-rt-bindings-xml-3.1.9.jar cxf-rt ...

  6. 一个完整的jmeter APP登录接口测试实例

    最终效果: 知识点: 通过HTTP信息头管理器, 正则表达式提取器 提取登录要用的token,memcard,Debug Sampler,CSV Data set  config参数化登录,循环控制器 ...

  7. 一个基于Scrapy框架的pixiv爬虫

    源码 https://github.com/vicety/Pixiv-Crawler,功能什么的都在这里介绍了 说几个重要的部分吧 登录部分 困扰我最久的部分,网上找的其他pixiv爬虫的登录方式大多 ...

  8. JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识

    JAVA WEB快速入门系列之前的相关文章如下:(文章全部本人[梦在旅途原创],文中内容可能部份图片.代码参照网上资源) 第一篇:JAVA WEB快速入门之环境搭建 第二篇:JAVA WEB快速入门之 ...

  9. 基于SSH框架的在线考勤系统开发的质量属性

    我要开发的是一个基于SSH框架的在线考勤系统. 质量属性是指影响质量的相关因素,下面我将分别从6个系统质量属性(可用性,易用性,可修改性,性能,安全性,可测试性)来分析我的系统,以及如何实现这些质量属 ...

随机推荐

  1. 如何解决Ajax跨域问题-1

    如何解决Ajax跨域问题 最近在做AJAX调用C的问题,出现跨域问题,学习总结如下: 在做ajax读取数据的时候,经常会遇到ajax需要跨域的问题,但由于浏览器安全方面的限制,XMLHttpReque ...

  2. PHP 递归实现层级树状展现数据

    <?php $db = mysql_connect('localhost', 'root', 'root') or die('Can\'t connect to database'); mysq ...

  3. 淘宝的数据库拆分(TDDL)(转)

    淘宝的数据拆分历程 系 统刚开始的时候,因为系统刚上线,用户不多,那个时候,所有的数据都放在了同一个数据库中,这个时候因为用户少压力小,一个数据库完全可以应付的了,但是 随着运营那些哥们辛苦的呐喊和拼 ...

  4. Effective java -- 2 对于所有对象都通用到方法

    第八条:覆盖equals时请遵守通用约定 什么时候需要覆盖equals方法?类具有自己的逻辑相等概念,并且父类的equals方法不能满足需要.重写equals时需要遵循一下约定: 自反性:非null ...

  5. 支持wmv、mpg、mov、avi格式的网页视频播放代码

    这2天一直在整金网奖的相关项目,比较头大的就是网页视频播放了,需要考虑各种不同格式的视频,然后找相应的视频播放器. 这次使用了2种方法对这些视频进行处理: 1.使用ckplayer网页视频播放器 ck ...

  6. 深入理解HTTP协议(转)

    http协议学习系列 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web C ...

  7. XHTML 是以 XML 格式编写的 HTML

    什么是 XHTML? XHTML 指的是可扩展超文本标记语言 XHTML 与 HTML 4.01 几乎是相同的 XHTML 是更严格更纯净的 HTML 版本 XHTML 是以 XML 应用的方式定义的 ...

  8. win8 64位+Oracle 11g 64位下使用PL/SQL Developer 的解决办法

    1)安装Oracle 11g 64位2)安装32位的Oracle客户端( instantclient-basic-win32-11.2.0.1.0)下载 instantclient-basic-win ...

  9. Java中正则表达式的几种用法

    多数内容转载自:http://www.jb51.net/tools/regex.htm ,有改动 用到了java.util.regex包: 1. 验证 Pattern pattern = Patter ...

  10. JavaScript 轻松创建级联函数

    级联函数是什么? 在一行代码上,调用一个接一个的方法.这种技术在 JQuery 或者其他 JavaScript 库中是非常常见的. 代码如下: $('#myDiv').fadeOut().html(' ...