接口测试之基于LoadRunner的一个简单示例
这几天一直在捣鼓接口测试,以下总结一下:
1、什么是接口测试:接口是指系统模块与模块之间或者系统与系统之间进行交互,一般我们用的多的是HTTP协议的接口、WebService协议的接口、还有RPC(Remote Procedure Call Protocol)的接口。不管是哪种接口,其本质就是发送一个Request,然后服务器响应后返回一个response,然后我们对response进行分析,这就是接口测试。
2、消息接口测试的两种:
a) Webservice:使用soap协议得到想要的东西(不分POST与Get,只是基于soap协议包装出来的),能处理较复杂的数据类型(XML)。若需要在后台调用一个其他应用的服务,用webserivice的方式;
b) HTTP:基于http协议,通过POST和GET得到想要的东西,处理数据效率较高。当要调用一个本服务的内容时,使用httpservice的方式。
3、常用的接口测试工具有:
a) 商业工具:Soapui、LoadRunner
b) 开源工具:Jmeter、Jsoup、httpclient、Python中的urllib,urllib2库
c) 插件:Poster、Postman
以上是一些接口测试最基础的理论认知,下面就是具体步骤,为了自己以后能看懂,写的尽可能的详细了(自从进了IT,我发现我的记性貌似越来越差了,╮(╯▽╰)╭)
1、File—New…—New Virtual User中选择Web(HTTP/HTML)协议

2、首先写个函数,代码如下


3、在设置中把日志打开,运行一下(可以打开View—Test Results…查看运行的图形化结果,验证一下自己的函数写对没),看是否有报错
——上述过程就是一个发请求的过程,现在的问题是我怎么知道我请求返回的结果是对的?这时候就要获取服务器的响应,然后加个断言来判断。
4、获取响应(即请求返回的结果),写个关联函数获取

运行一波,查看结果,日志中多了一栏蓝色的东西(没开日志是看不到的)

PS:页面默认的编码是GB2312,如果是乱码,去设置那里改一下编码格式,方法自行百度。
——此处假设要验证的是“紫川”,以《紫川》为例,我在文本文件中,找到(Ctrl+F查询快捷键)了这个——d.set('key_word', '紫川');


接下来就是写断言部分,这个需要一点C语言基础

再次运行,就能在下面的日志中看到断言的结果了。

以上是基于http协议的,关于Webservice的大致相同,首先选择协议为Web Services,然后导入一个MSDL文件,后面的就大致相同了。
完整代码:
Action()
{
web_reg_save_param("Response", //关联函数
"LB=d.set('key_word', '",
"RB=');",
"Ord=1",
"Search=NoResource",
LAST);
web_url("Request","URL=http://yuedu.baidu.com/search?word=%D7%CF%B4%A8&pbook=0",LAST ); //请求
if(strcmp(lr_eval_string("{Response}"),"紫川")==0) //断言部分
lr_output_message("断言成功");
else
lr_output_message("断言失败");
return 0;
}
__努力可能比较累,但是心安....
接口测试之基于LoadRunner的一个简单示例的更多相关文章
- web 框架的本质及自定义web框架 模板渲染jinja2 mvc 和 mtv框架 Django框架的下载安装 基于Django实现的一个简单示例
Django基础一之web框架的本质 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于Django实现的一个简单 ...
- 基于 Roslyn 实现一个简单的条件解析引擎
基于 Roslyn 实现一个简单的条件解析引擎 Intro 最近在做一个勋章的服务,我们想定义一些勋章的获取条件,满足条件之后就给用户颁发一个勋章,定义条件的时候会定义需要哪些参数,参数的类型,获取勋 ...
- 使用CEF(二)— 基于VS2019编写一个简单CEF样例
使用CEF(二)- 基于VS2019编写一个简单CEF样例 在这一节中,本人将会在Windows下使用VS2019创建一个空白的C++Windows Desktop Application项目,逐步进 ...
- 基于PHP实现一个简单的在线聊天功能(轮询ajax )
基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...
- asp.net WebService的一个简单示例
不同的系统之间经常会需要数据的交换对接,而Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范 ...
- 基于node实现一个简单的脚手架工具(node控制台交互项目)
实现控制台输入输出 实现文件读写操作 全原生实现一个简单的脚手架工具 实现vue-cli2源码 一.实现控制台输入输出 关于控制台的输入输出依然是基于node进程管理对象process,在proces ...
- 【玩转开源】BananaPi R2 —— 第三篇 基于Openwrt开发一个简单的路由器
上一篇讲解了R2的网口配置,这一篇我们以BananaPi R2为例子来实现一个简单的路由器:那么一个简单的路由器应该具备什么样的功能呢?最简单的说就是wan+lan+ap这三个功能. 首先wan+la ...
- Django的下载安装以及实现一个简单示例
一.Django下载安装 Django下载链接 1. 下载Django: pip3 install django==1.11.9 (大的版本1.11不要错) 2.创建一个django proje ...
- 基于SOUI开发一个简单的小工具
基于DriectUI有很多库,比如 Duilib (免费) soui (免费) DuiVision (免费) 炫彩 (界面库免费,UI设计器付费,不提供源码) skinui (免费使用,但不开放源码, ...
随机推荐
- .NET 程序集与命名空间
程序集 程序集(assembly)是一个或多个托管模块,以及一些资源文件的逻辑组合. 组成部分 Windows文件首部 CLR文件首部 程序集清单 类型元数据 MSIL(CIL)代码 嵌入资源集 作用 ...
- spring加载多个配置文件
首先我们都知道要使用spring,则需要在web.xml中增加如下代码: web.xml: 1:<listener><listener-class>org.springfram ...
- 面向切面编程AOP
本文的主要内容(AOP): 1.AOP面向切面编程的相关概念(思想.原理.相关术语) 2.AOP编程底层实现机制(动态代理机制:JDK代理.Cglib代理) 3.Spring的传统AOP编程的案例(计 ...
- mysql远程连接问题
问题:在服务器里面新安装一个MYSQL数据库,结果在远程电脑连接不上,并提示“服务器连接错误Host 'XXX' is not allowed to connect to this MySQL ser ...
- 【Java EE 学习 46】【Hibernate学习第三天】【多对多关系映射】
一.多对多关系概述 以学生和课程之间的关系为例. 1.在多对多关系中涉及到的表有三张,两张实体表,一张专门用于维护关系的表. 2.多对多关系中两个实体类中应当分别添加对方的Set集合的属性,并提供se ...
- 百度地图-省市县联动加载地图 分类: Demo JavaScript 2015-04-26 13:08 530人阅读 评论(0) 收藏
在平常项目中,我们会遇到这样的业务场景: 客户希望把自己的门店绘制在百度地图上,通过省.市.区的选择,然后加载不同区域下的店铺位置. 先看看效果图吧: 实现思路: 第一步:整理行政区域表: 要实现通过 ...
- Asp.net导出Excel续章(自定义合并单元格,非Office组件)
结合上次写的导出Excel方法,这次上头要求我将列头进行一下合并 以前的效果: 改进后的效果: 在上篇文章中写到了Excel的导出方法,这次为了避免在生产环境中使用Office组件,服务器各种权限配置 ...
- EventBus 一
一.概述 EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间 ...
- Codeforces Round #365 (Div. 2)
A题 Mishka and Game 水..随便统计一下就A了 #include <cstdio> #include <map> #include <set> #i ...
- SPOJ : DIVCNT2 - Counting Divisors (square)
设 \[f(n)=\sum_{d|n}\mu^2(d)\] 则 \[\begin{eqnarray*}\sigma_0(n^2)&=&\sum_{d|n}f(d)\\ans&= ...