文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

利用python进行接口测试及类型介绍

2024-04-02 19:55

关注

前言

其实我觉得接口测试很简单,比一般的功能测试还简单(这话我先这样说,以后可能会删O(∩_∩)O哈!),现在找工作好多公司都要求有接口测试经验,也有好多人问我(也就两三个人)什么是接口测试,本着不懂也要装懂的态度,我会说:所谓接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。

我为啥说接口测试比功能测试简单呢,因为功能测试是从页面输入值,然后通过点击按钮或链接等传值给后端,而且功能测试还要测UI、前端交互等功能,但接口测试没有页面,它是通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果,所以它只需测入参和出参就行了,相对来说简单了不少。

正好最近在做接口测试,之前公司的方案是使用postman进行接口测试。但是伟大的墙导致我们只能用离线版postman。。然后一个很长很长的接口列表,一个接一个的访问。我的天哪。。所以萌生了一个想法,使用python编写一套接口测试脚本,设置接口列表,然后逐条访问,输出日志。

接口测试的坑

第一个坑:

POST 和 GET----GET一般用于获取/查询资源信息,而POST一般用于更新资源信息|Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求。

做过接口测试或者做过前端的人都知道,接口的访问方式是不一致的,所以才会使用postman来进行接口测试,因为它可以设置post和get方式。使用python模拟这俩种访问方式是重中之重。先说GET方式。GET方式就比较简单了,把接口放进浏览器地址栏,点下回车就完成了一次GET。所以就需要使用python访问URL就可以模拟一次GET 测试。

 import urllib2
 url_save = 'http://www.baidu.com/'
 try:
 s_save = urllib2.urlopen(url_save).read()
print s_save  
except urllib2.HTTPError, e:
 print e.code
 except urllib2.URLError, e:
 print str(e)

如上所示就完成了一次GET请求,调用urllib2库,然后将一个字符串形式的URL传给urllib2.urlopen函数,最后使用read()方法将GET回来的数据存储起来。

然后说说POST。其实在python的urllib2库中,我们刚刚所使用的urlopen函数还有其他几样不是必选的入参,因为这些入参给定了初始化的值:

def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
 cafile=None, capath=None, cadefault=False, context=None):

如上代码,urllib库有一个很智能的毛病。data不给值,访问方式就是GET,data给了值,方式就会变成POST;所以模拟POST 方式的代码如下:

import urllib 
import urllib2 
url = 'http://www.example.com' 
# values的形式:name:value
values = {'**' : '***', 
          '**' : '***', 
          '**' : '***' } 
#使用urllib.urlencode函数对values字典进行处理,最终形式为:**=***&**=***
data = urllib.urlencode(values) 
#如果对data顺序有要求,建议自己拼接data
req = urllib2.Request(url, data) 
response = urllib2.urlopen(req) 
the_page = response.read()

就像如上代码,把POST方式所需要的数据写到data参数中去,POST方式就模拟成功了。

第二个坑:cookie的使用

用python获取cookie所需要的库叫做cookielib。获取cookie的例子:

# 这里有四种CookieJar,CookieJar是最原始的
cookie_use = cookielib.CookieJar()
 handler = urllib2.HTTPCookieProcessor(cookie_use)
 # 使用绑定好CookieJar的handler创建一个opener
 opener = urllib2.build_opener(handler)
 # 将opener安装到urllib2中
 urllib2.install_opener(opener)
# 使用安装好的urllib2访问某一网站获取cookie
 urllib2.urlopen('https://....../login')
 #这个时候cookie已经被CookieJar获取到了
 print cookie_use

在下一步,将获取到的cookie绑定到opener头中:

'''
  将获取到的cookie绑定到opener,上一步获取的cookie并不满足如下格式,
需要自己进行字符串的切片和拼接 
 '''
opener.addheaders.append(('Cookie', 'name=***&888=888'))

现在的opener就可以用来访问任意需要登录的网站了!

功能:功能实现,实现与设计一致, 接口通过性测试

接口类型

常见接口种类:

常见接口数据类型:

常见接口安全验证方式:

常见接口请求方法:

常见状态码(RESTful规范):

接口业务类型:

快速上手接口测试

获取接口文档:

接口文档分析

编写接口用例

Excel/TestLink/禅道

执行接口测试

到此这篇关于利用python进行接口测试详情的文章就介绍到这了,更多相关python接口测试内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯