技术分享 | 软件接口测试工具篇

软件接口测试工具篇

- Python requests -

   在软件测试领域中,如果按照软件研发周期维度给测试分类的话,集成测试是一种重要的测试手段,它在单元测试和系统测试之间能够起到桥梁的作用,而接口测试又恰恰是集成测试能够抽象而且可执行的一个分支,接口测试是验证系统组件间的接口耦合交互,检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据间的交换,传递和控制管理过 程,以及系统间的相互逻辑依关系等CBA时代软件的复杂度更是呈几何级增长和聚合,由此给BUG的滋生提供了肥沃的土壤,这也是接口测试的意义所在。

关于软件测试更多理论知识我们在另一个篇幅中分享介绍,今天主要和大家分享Python语言中requests库在接口测试中的使用。

image
  接口测试工具众多,比如大名鼎鼎的SoapUI,Apache旗下性能与接口集一身的Jmeter、Chrome浏览器Postman插件等等,都可以完成接口类型测试,各有优点,孰轻孰重可以根据项目需求和软件集成接口协议来适配选择。本篇主要给大家推荐的是基于Python语言的requests库,requests采用 Apache2 Licensed 开源协议的 HTTP 库,requests 不仅简洁易用,而且维护文档详实,社区版本支持力度活跃,用Python做接口测试requests是推荐的选择,同时requests可以和python 下的单元测试框架unittest集成,完美实现接口测试自动化,测试结束后,通过HTMLTestRunner生成测试报告,smtplib邮件发送结果。
image

下面以优云数智PaaS产品线Solar组件的接口自动化测试框架SRAT为例分享requests的使用:

一、测试环境的准备如下:

|

** 软件**

|

** 版本**

|
|

操作系统

|

Windows7

|
|

Eclipse

|

Oxygen.1a Release (4.7.1a)

|
|

Pydev

|

6.4.0

|
|

Python

|

3.6.3

|
|

requests

|

2.18.4

|
|

unittest

|

2.1

|
|

HTMLTestRunner

|

0.8.2

|
|

备注:

1、Python目前分两个版本Python2x和Python3x,requests完全支持Python3x。

2、requests、unittest安装通过pip3 install xxx 安装即可。

3、HTMLTestRunner直接放到Python的Lib目录下就可以了。

|

二、SRAT****接口自动化

image
  • Public.py 将Solar组件的每个大功能封装成为一个类,同时在类下面每一个接口定义为一个方法,然后通过requests实现接口协议封装的好的部分,在Case*.py测试用例时直接使用该公共类抽象出的对象就可以了,这样做到全局复用。

  • Case *.py 是将每个大类下面的具体接口编写测试用例,在测试用例里面来实现每一个测试接口所要的测试内容,每一条测试Case最后用到unitest来断言测试结果和预期结果,作为在测试报告中标注测试是否通过。

  • Report.py是执行自动化测试的入口,里面HTMLTestRunner定义了测试报告生成、smtplib邮件发送两大块内容。

  • report文件夹用来存放每次执行接口自动化测试生成的报告。

  • config.ini配置文件可以用来配置邮件的相关信息,例如发送接收人,邮件服务器信息等。

三、SRAT****接口自动化测试公共类Public.py****实现(以User API****为例):

   User业务功能中总共包括8个接口,分别实现不同的和用户相关功能,将User封装为类Class UserAPI,然后在UserAPI Class中分别对每一个接口功能定义一个方法实例,准备给对应的接口测试用例来调用,这样比较逻辑清晰,易于修改和复用,下面是实现代码。 
image
image

四、SRAT****接口自动化测试用例类Case.py****实现(以CaseUser ****为例):*

   在User API里面定义好公共类后,在CaseUser就需要使用公共类定义好的方法了,CaseUser里面继承了Python 单元测试框架 unittest的方法(关于unittest实现原理类似于java里面的junit,大家可以自行查找资料,比较好理解),测试结果和预期结果通过断言assert来比较,SRAT主要是判断接口请求后response返回的状态码和返回状态信息来断言。然后将所有的测试用例组织到测试套件unittest.TestSuite()自动化完成测试用例的执行,执行完所有的测试用例后用HTMLTestRunner.HTMLTestRunner()生成测试报告,代码如下。
image
image

五、SRAT****接口自动化Report****测试执行及报告发送:

   测试公共类Public和测试用例Case* 编写完成后,就可以进入测试执行环节,分两部分:一部分是测试执行环节,unittest.defaultTestLoader.discover()用来执行测试用例部分,自动调用Case*.py,Case*.py继续再调用Public对应实现方法,测试用例执行完毕后,调用send_mail()方法发送测试测试报告,整个接口测试过程就完毕了,实现代码如下。
image

测试执行完毕后在Eclipse 控制台显示的测试。

image

六、SRAT****接口自动化邮件报告查看:

  下面是SRAT接口自动化测试完成HTMLTestRunner生成报告后发送给相关人员,打开可以查看本次接口测试执行情况,包括测试用例的通过率、通过、错误、失败、所有,对每一个用例集下的测试用例有详细的统计,失败或错误了的原因,如下测试报告展示。
image
 总结上面SRAT实现接口自动化测试分享了Python requests使用,从测试角度讲,关键部分是测试框架搭建和测试用例的编写,本次SRAT是首先将接口公共部分封装类后,然后再在测试用例调用实现公共的方法去测试对应接口,其实,这个测试还需要有一定的Python代码基础,如果从黑盒子角度可以将测试框架和测试用例完全解耦分离,测试用例用excel或YAML文件来实现测试用例就更好了,期待后面改进一版。

上面有不妥之前敬请和我联系,一起交流沟通,谢谢!后面有机会和大家一起分享测试基础理论、测试工具集合、存储测试入门、大数据性能测试等内容。

requests****官方参考文档:

http://docs.python-requests.org/zh_CN/latest/user/quickstart.html

http://www.python-requests.org/en/master/

https://pypi.org/project/requests/


优云数智介绍

优云数智(上海优铭云计算有限公司)是一家专注于提供企业级私有云产品与解决方案的云计算厂商,提供PaaS+IaaS的一站式解决方案。优云数智的母公司是中国中立的公有云服务商UCloud。私有云技术来源于全球顶尖的OpenStack、Ceph、Kubernetes云计算开发团队。

image

扫描关注,了解更多

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

推荐阅读更多精彩内容