基于Python的接口自动化测试框架

作者:admin | 分类:接口测试教程 | 浏览:172 | 评论:

 

接口测试工具

         目前市面上针对接口测试的自动化工具有很多,例如Soup UIPostmanrobotframeworkjmeter、loadrunner等

robotframework测试框架有很多的第三方库可以使用,采用的是填表的方式进行,较容易上手,但是无法深入底层的了解客户端与服务器的交互过程。jmeter这样的专注性能测试的工具,进行接口测试,有点大材小用的感觉而且无法生成测试报告。但是这些工具灵活性不够,也不完全适用于被测系统。

综上考虑,决定自己开发一个简单的框架,优点是足够灵活,可以随时根据需求进行变更,后台使用的是python+flask进行开发,此次选用python 2.7.11进行框架的开发,python开发的速度很快,且容易上手,丰富的第三方库,大大加快了开发速度和难度。

框架思路

由于是框架,所以要考虑到框架的可重用性和可维护性。

其次,需要考虑到测试人员编写测试用例的方便性,采用数据驱动的设计方式,将数据分层出来,与业务逻辑剥离。这样测试人员就可以通过数据文件专注的写测试用例,不用关注代码编写,提高了效率。此次框架采用基本的excel进行数据管理。通过对excel 的读取获得数据。

之后将测试的结果生成HTML格式的测试报告发送给相关开发人员。

 

 

第三方库介绍

 

Requests

python中有许多针对http的库,例如自带的urllib2,但是自带的urllib2编写起来实在是太费精力,所以采用号称"HTTP forHumans"的requests库。

xlrd

xlrd使得python可以方便的对excel文件进行读写操作,此次通过xlrd读取excel文件中的测试数据。

以上第三方库都可以通过pip直接安装或者通过pypi下载源码包安装。

模块介绍

get_conf:

读取配置文件,获得邮件发送的配置信息,如smtpserver、receiver、sender等。

md5Encode:

部分数据采用md5加密后传输,所以需要把从excel读取的数据进行md5加密。

sendMail:

当测试完成后,将测试报告自动的发送给相关开发人员。

runTest:

此部分读取excel中的数据,调用下方的interfaceTest方法,保存interfaceTest返回的信息。

interfaceTest:

将runTest读取的excel数据作为入参,执行接口测试,并将后台返回的信息返回给runTest

Excel的文件格式如下图,API Purpose记录接口的名称,API Host记录主机地址,Request Methon记录请求方式,可以选择GET或者POST。

Request Data就是构造的测试数据,这里需要注意其格式的书写。

Check Point是检查点的设置,当获得数据后,需要跟检查点的数据进行比对,如果符合,说明测试成功,反之失败。


在这里可以设置邮件发送人、接收者、smtp服务器地址以及用户名密码。需要根据实际情况进行改变。

代码实现

 

 

由于所有的操作必须在系统登录之后进行,一开始没有注意到cookie这一点,每读取一个测试用例,都会新建一个session,导致无法维护上一次请求的cookie。然后将cookie添加入请求头中,但是第二个用例仍然无法执行成功。后来用fiddler抓包分析了一下,发现cookie的值竟然是“每一次操作后都会变化的!!!”

所以只能通过session自动维护cookie。

在interfaceTest函数中,返回三个值,分别是HTTP CODE,HTTP返回值与session。再将上一次请求的session作为入参传入interfaceTest函数中,在函数内部判断session是否存在,如果不为None,那么直接利用传入的session执行下一个用例,如果为None,那么新建一个session。


上一篇:Eclipse+TestNG搭建接口自动化测试框架     下一篇:接口测试概念、接口测试目的

网名:接口测试 | 博客官网

姓名:柠檬

籍贯:江苏省-南京市

现居:厦门市—思明区

职业:软件测试

填写您的邮件地址,订阅我们的精彩内容:

网站分类
接口测试教程官网

接口测试加群二维码