Python接口测试自动化实战及代码示例:含Get、Post等方法
副问题[/!--empirenews.page--]
年头参加到一个靠山体系开拓的项目中,内里涉及了许多接口,我做为项目组测试职员,必要对这些接口举办测试,一开始行使 postman 器材测试,极端利便。但跟着接口数目的增进,不仅要执行手动点击测试,并且,一旦接口参数变换,都从头变动接口参数,次数多了,使得测试服从严峻降落。 其后我将眼光转向了自动化测试,思量到项目组对接口质量要求很高,必要快速开拓。最终选定 python 作为剧本开拓说话,行使其自带的 requests 和 urllib 模块举办接口哀求,行使优化后的 unittest 测试框架编写测试接口函数,测试功效选用 HTMLTestRunner 框架予以展示,并行使 python 的 ssl 模块支持 https 协议的验证。接下来,我具体地先容这些模块,并给出各个模块完备的测试代码。 1、接口哀求 python 出格是 python 3.x 中的 urllib 和 requests 模块,是用来哀求 url 的两个首要模块。这两个模块中,假如仅仅是支持 http 协议的 url 哀求,保举行使 requests 模块。为什么这么说呢?由于爱因斯坦说过一句话:简捷就是美。requests 模块对 urllib 模块又做了一层封装,行使越发利便。该模块支持 GET, POST, PUT, DELETE 等哀求要领。哀求返复书息包括状态码和动静体,状态码用三位数字暗示,动静体可用字符串,二进制或json 等名目暗示。下面用一个例子来先容一下 requests 模块的行使。代码如下:
输出为:
上述措施输出状态码为 200,表白哀求乐成,返回动静体为网页内容。这里我仅对requests 模块中的 get 哀求要领做了封装,其余要领(如 post,put,delete 等)的封装相同。当让你也可以不消封装,直接行使 requests.methodName 来直接挪用该要领。这里提示一句,在现实的接口测试中,headers 和 data 都是有值的,要确保这些值的填写正确,大部门哀求下的哀求失败或返回功效错误,根基上都是因为这些值的缺失或错误造成的。更多关于 requests 模块的先容,请参考官方文档。 2、测试框架优化 unittest 是 python 中举办单位测试行使普及的框架,其与 java 中的单位测试框架junit 相同。该框架行使简朴,必要编写以 test 开头的函数,选择 unittest 框架运行测试函数,测试功效在终端表现。这里举一个简朴的例子:
简朴表明下这段代码,起首我们建设一个类 ApiTestSample,这个类担任自unittest.TestCase 类。然后在这个类中写了 jiafa 函数,它有两个参数 input01,input02,返回 input01 与 input02 相加的和。接着在 test_jiafa 要领中,我们对适才 jiafa 函数举办了和值校验。通过给 jiafa 输入两个值,获取其函数返回值,并与真实值做相称判定,以此实现函数单位测试。这里用到了 unittest 间断言值相称的 assertEqual(m, n)函数,上述代码运行功效如下:
以上是 unittest 框架最根基的单位测试应用,可是这个框架有个缺陷,就是不能本身传入参数。对付接口来说,每每必要传入许多参数,而且这每个参数又有许多取值,假如差池原先的 unittest 框架做改变,不只无法用来举办接口测试,并且一个个团结参数取值去写测试代码,事变量极其复杂,也没有实现测试数据与剧本没有疏散。基于此,我们对该框架做出一下两点优化。 1)扩展 unittest.TestCase 类,支持自界说参数输入; 2)测试数据与测试脚天职离,测试数据存储在文件和数据库中,以加强测试剧本复用性; (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |