RF是做接口测试的一个非常方便的工具,我们只需要写好发送报文的脚本,就可以灵活的对接口进行测试。

做接口测试我们需要做如下工作:

1、拼接发送的报文

2、发送请求的方法

3、对结果进行判断

我们先按步骤实现,再进行RF操作的优化。

现在就让我们来完成一个拼接发送报文的方法,这个方法也是小编和同事聊天时无意聊到的,很巧,不知道各位想到没有,反正小编没想到^_^,话不多说,先上代码:


#coding: utf-8 import json class JsonModify(object): def __init__(self):
pass
def post_info(self, *parameters):
jsonStr = {}
strDict = 'jsonStr'
for parameter in parameters:
# print(strDict + parameter)
try:
exec(strDict + parameter)
except:
print 'Expression execute failed![',strDict + parameter,']'
raise
return json.dumps(jsonStr)

现在我们来分析一下上面的代码:

首先我们定义了一个post_info函数,参数传的 *parameters可变参数,也就是说我们在传参的时候可以传任意多个参数。

1、我们先定义了一个空的字典jsonStr

2、注意,接下来的操作很有意思,就是这里做了一步“很无聊”的赋值操作——把字典名字作为字符串传给了一个变量:strDict = ‘jsonStr’

3、接下来,我们遍历可变参数(列表),try except属于Python异常处理的知识,很容易,大家可以自己看一下。

exec译为“执行文本中的Python语句”,也就是说其实我们对传参是有要求的,我们要执行 ‘strDict + parameter’ 这个Python语句,如果无法执行,则走except语句:打印原因并报错(raise)

4、最后利用json库中的dumps方法把字典转换为字符串(字符串转字典为loads)并返回。

接下来是以前讲过的,先在robot   Library中导入类名JsonModify,然后在测试用例中直接调用函数,函数在调用时下划线其实是可以不写或者用空格代替的

注意我们的传参,注意我们的传参,注意我们的传参

发现参数的特别之处了吗?没错,我们是按着字典的key-value形式传的,这时执行的就是jsonStr['sign']='sign'

这种方法的好处就是以后在拼接报文的时候只要按着这种格式传参,就直接拼好了一个json。但是这种方法也有它的不足,就是如果传10个参数还无所谓,如果传100个参数……没错,只能写100个这个东西^_^而且只能是一层的json像是下图这种,如果在字典里还要嵌套字典或者列表,这种方法也是不可用的。但是优化也很方便,就是可以先读一个含有发送报文的文本。

运行得到:

现在我们就完成了拼接发送报文的工作。

微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~

Robot Framework接口测试(1)的更多相关文章

  1. robot framework 接口测试 http协议post请求json格式

    robot framework 接口测试 http协议post请求json格式 讲解一个基础版本.注意区分url地址和uri地址. rf和jmeter在添加服务器地址也就是ip地址的时候,只能url地 ...

  2. Robot Framework接口测试(4)

    现在我们已经做好了进行接口测试的必要准备:1.拼接发送的报文:2.发送报文的方法.现在我们实现RF上的接口测试. 我们先对发送的方法进行一下封装: 1.拼接报文方法: #coding : utf-8 ...

  3. Robot Framework接口测试(3)--http请求之post

    http请求更多的是post请求,我们可以:查看说明:很多网站在登录的时候需要加上头部信息即headers,这个信息可以通过抓包工具获得——fiddler,一个轻量级的抓包工具,大神用了都说好~这里模 ...

  4. Robot Framework接口测试(2)--http请求之get

    本来打算把http发送请求的get和post方法都介绍一下的,结果发现篇幅有点长,文本编辑也变得混乱,所以这里先介绍一下get方法,下一次再post.其实这些方法大家可以看一下源码里面的介绍只需要在代 ...

  5. robot framework接口测试之一-完整的测试用例

    *** Settings *** Library Collections Library json Library requests Library RequestsLibrary Library H ...

  6. 使用Robot Framework做接口测试

    http://chuansong.me/n/1858477 1.RF框架 1.1 RF框架介绍Robot Framework 框架是一个通用的测试框架,一直是由诺西网络(Nokia Siemens N ...

  7. 【Robot Framework 项目实战 01】使用 RequestsLibrary 进行接口测试

    写在前面 本文我们一起来学习如何使用Robot Framework 的RequestsLibrary库,涉及POST.GET接口测试,RF用例分层封装设计等内容. 接口 接口测试是我们最常见的测试类型 ...

  8. 基于RFS(robot framework selenium)框架模拟POST/GET请求执行自动化接口测试

    打开RIDE添加测试用例 如: Settings         Library Collections       Library RequestsLibrary       Test Cases ...

  9. 在centos7中安装Robot Framework

    安装前景介绍: 最初,我们是在Windows环境下搭建Robot Framework来对我们的服务进行接口测试的(想知道如何在Windows下安装Robot Framework,可以参考我同事的博客h ...

随机推荐

  1. 【leetcode刷题笔记】Majority Element

    Given an array of size n, find the majority element. The majority element is the element that appear ...

  2. Linux yum源地址

    ----------------------------------Linux yum源地址------------------------------ Zabbix 3.0 yum源 rpm -iv ...

  3. jQuery个人名片焦点图

    在线演示 本地下载

  4. kali 2016:mount ntfs 分区只读 --Falling back to read-only mount because the NTFS partition is in an unsafe state.

    mount ntfs 分区 mount /dev/sdb1 /mnt/d 提示: The disk contains an unclean file system (0, 0).Metadata ke ...

  5. Shell脚本监控专线Network并SendEmail报警

    Much effort, much prosperity. 配置服务器监控专线网络 项目介绍: 配置一台服务器监控专线网络的情况,(由于公司业务的原因需要用到专线进行与客户对接)实时监控专线的状态,如 ...

  6. AMD C1E SUPPORT

    •C1E是一种电源管理状态,它可以让处理器节能不限于处理器内核.在CIE状态,可以通过降低内存时钟速度.关闭HT技术,来降低处理器能耗.这种新功能对于12核的处理器极其重要,因为这种处理器在设计上既增 ...

  7. MergeSortedArray,合并两个有序的数组

    问题描述:You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold add ...

  8. centos 安装jdk/resin/mysql

    一.安装JDK 1.判断是否安装 java -version 我的计算机上使用java -version命令,内容如下: java version "1.7.0_45"OpenJD ...

  9. Flume-NG中的Channel与Transaction关系(原创)

    在sink和source中(不管是内置还是自定义的),基本都有如下代码,这些代码在sink中的process方法中,而在source中自己不需要去写,在source中getChannelProcess ...

  10. 如何让Myeclipse已经关闭掉的项目不显示出来

    一.打开Package Explorer视图,在它的右上角有一个向下的三角图标. 2.点击后选择Filters,在弹出的Filter配置窗口中选中"Closed Projects" ...