浅谈web接口测试

1.(web)接口的本质是什么?

在谈接口测试之前,想先问一下,接口是什么?

很多人可能使用过postman一类的工具,填上url和访问方法等等,然后工具会访问这个url并把返回值呈现给你,那么,是否这个url就是“接口”?

答案是,不一定。

(web)接口的本质,其实就是部署在服务器上的程序。

访问url,这个url可能只是一个静态资源,那么我认为不能算是接口,接口是有一定属性的、协商过的满足一定协议的服务,类似于www.baidu.com/pic/1.jpg这种静态文件的url,其实只是让你访问,但没有任何的处理。(但是并不是说静态资源就不用测了,是两回事,静态文件的url不能算接口, 但是cdn统一向外提供静态资源的服务可以算接口,图片的名称可以算传入的参数)

接口是开发预先定义好的程序,是web服务的子集,接口名其实就是程序名,当你(可能还带着参数)访问这个程序名的时候,程序就会按照预定的流程进行处理;这个程序可能会处理sql可能不会,可能会把数据做处理也可能只是简单返回一个ok,这不重要,重要的是,他一定是一段具有逻辑的程序。

2.如何进行(web)接口测试?

如果把问题从如何进行(web)接口测试,等价的换为,如何对一个程序进行测试,那么我想,对大家而言会轻松很多,因为一直以来,我们都在做这样的测试。

如何对一个程序如何进行测试?

很简单,先分类,首先是基本的功能逻辑验证,然后可能还会有安全性测试,程序健壮性测试,性能测试等等。

具体来说,我建议按照以下的顺序循序渐进的完善我们的接口用例case。

首先,做到回归可用,也就是说,将接口组合,串起一整条业务线,这个时候每个接口的参数可能是固定的,但是跑起来已经可以覆盖基础业务场景;

其次,完善接口测试的业务逻辑,达到业务逻辑的全覆盖,这个时候可能每个接口会有不同的入参以实现不同的业务场景(举例而言,金牌的业务场景和普通认证的就有不同)

然后,在该基础上,查验是否已经实现了接口文档所有的入参类型和返回值类型,如果没有实现,那么加上,最终实现对文档内参数的覆盖;

最后,有针对性的对接口增加边界值,异常值,安全测试数据等等非文档内的参数进行补充测试。

3.接口从哪儿来?

如果有接口文档,肯定是看文档最好了,但是一个文档应该要包含接口的所有信息(所有可能的入参包含是否必选,所有可能的返回值,返回值类型),目前而言,可能还不够能作为参考;

如果没有文档或者文档缺失严重,可以自己根据业务流程抓包(fiddler)。

4.接口测试的工具

自己写的话,可以用py+request库,结合测试框架比如testng等等进行设计;此外现成的工具比较著名的还有soapui,test studio for apis,以及我们今天要说的jmeter。

5.使用jmeter访问一个接口

jmeter的安装我就不说了,官网直接下载就行,需要说明的是,最新的jmeter3.2需要java8的支持。

首先我们需要在测试计划里新建一个线程组,所有的访问都会在该线程组下进行;

以我司登录接口举例,在线程组内,增加一个http取样器并填写好我们要访问的地址(xxxxx.xxxx.com),协议(https),方法(POST),路径(/passport/api/auth/app-login);

开始跑,发现已经跑完了,但是并不知道跑的结果;

要知道结果,我们需要添加一个监听器(聚合报告&查看结果树),

发现返回的是没登录的信息,这时候我们加上post参数,userName,password,tenantCode,

查看返回值,发现登录成功了,那么我们现在把参数改一下,把密码改为错误的密码。

查看结果,发现对于jmeter来说,这个访问依然算成功的,那么如何让正确的登录和错误的登录有区别呢?

我们需要增加断言,也就是,判断标准。

在取样器后加上断言。

现在我们断言登录正确的情况。

然后切回错误的密码,可以看到这时候jmeter已经算他是失败的了。

这样我们一个基本的访问-断言-查看报告的流程就形成了。

但是具体到业务场景,我们可能会遇到一些问题。

6.jmeter里的参数化

举个最简单的例子,我们很多接口都是有依赖的或者频繁用到某个参数,比如说,登录账号,那么如果哪天登录的账号出问题了,难道要一个接口一个接口改吗?

当然不是,我们可以对登录账户进行参数化。

这里先介绍一下量级比较少的话,我们可以用用户自定义的变量,右键添加一个配置元件,用户自定义的变量,在这里我们可以自定义变量名和变量值,使用${}的语法进行引用。

如果量级比较大,我们可以把数据放到excel里,然后使用csv data set config,同样式右键添加一个配置元件,这个暂时不细说了,有兴趣的可以百度或者之后直接问我。

7.jmeter里的取参传参

我们的可能会遇到很多情况是,一个接口,需要用到上一个接口里返回的参数,这时候,我们需要用到提取器来进行参数提取,此外,有登录依赖的接口,可以使用http cookies管理器,如果你登录成功了,会自动替你管理cookies。

在取样器右键选择后置处理器-正则表达式提取器,进行参数的提取。

8.jmeter里获取数据库的数据

我们有可能会遇到需要校验或者使用数据库里的参数,比如说,验证码登录,我们就需要去数据库里查询验证码,这时候需要用到jdbc connection configuration,在线程组下右键-添加-配置元件-选择jdbc connection configuration

9.把jmeter放进持续集成

首先我们需要安装一个ant,然后把jmeter extras目录下的ant-jmeter-1.1.1.jar这个包扔到ant的lib目录,再把jmeter下的build.xml修改一下,这时候就可以用ant启动jmeter,并把测试报告转化为html了。
然后配置一下jenkins,使用ant插件构建build.xml就可以了
这个比较麻烦,所以不单独写了,附上我之前参考的文档:
Jmeter+Ant+Jenkins搭建持续集成的接口测试框架https://my.oschina.net/hellotest/blog/516079

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,200评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,526评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,321评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,601评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,446评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,345评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,753评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,405评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,712评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,743评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,529评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,369评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,770评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,026评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,301评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,732评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,927评论 2 336

推荐阅读更多精彩内容