通讯接口测试python_python接口测试例

要看你是什么样的接口

比如比较简单的http service 的接口,需要提供接口的访问地址,访问方式(GET? POST?PUT?DELETE?),以及参数

然后用python来模拟发出请求,得到接口的返回,返回是否正确

你做测试,肯定清楚什么样的输入输出是正确的

get的话肯定比较简单了,想知道post相关的,有伪代码也行啊·

你参考下这个吧,我以前做的post请求

如何使用python根据接口文档进行接口测试

1,关于requests

requests是python的一个http客户端库,设计的非常简单,专门为简化http测试写的。

2,开发环境

mac下面搭建开发环境非常方便。

sudo easy_install pip

sudo pip install requests

测试下:python命令行

import requests

>>> r = requests.get('', auth=('user', 'pass'))

>>> r.status_code

200

>>> r.headers['content-type']

'application/json; charset=utf8'

>>> r.encoding

'utf-8'

>>> r.text

u'{type:User...'

>>> r.json()

{u'private_gists': 419, u'total_private_repos': 77, ...}

开发工具,之前使用sublime,发现运行报错,不识别table字符。

IndentationError: unindent does not match any outer indentation level

非常抓狂的错误,根本找不到代码哪里有问题了。甚至开始怀疑人生了。

python的这个空格区分代码真的非常让人抓狂。开始怀念有大括号,分号的语言了。

彻底解决办法,直接换个IDE工具。使用牛刀,IDA开发。

直接下载社区版本即可,因为就是写个脚本啥的,没有用到太复杂的框架。

果然效果非常好,直接格式下代码,和java的一样好使,可以运行可以debug。右键直接运行成功。

3,测试接口

没有啥太复杂的,直接使用requests框架即可。

#!/usr/bin/python

# -*- coding: utf-8 -*-

################

import requests

#测试百度

def baidu_func(url):

headers = {}

params = {}

req = requests.post(url, headers=headers, params=params)

print(req.text)

if __name__ == '__main__':

url =

baidu_func(url)

4,总结

测试非常重要,尤其是对外的接口出现的漏洞,需要花时间去仔细测试,同时要仔细分析代码。

安全是挺重要的事情,要花时间去琢磨。

python学习还是非常容易学习的,一个小时就能把语法学会。

同时渗透测试,安全扫描的好多工具也是python写的。PyCharm CE版本的开发工具足够强大,能够帮你快速学习python。

如果想快速做点界面的开发,wxPython是非常不错的选择。

python怎么使用api接口测试

在开发中,需要测试web-api的接口 spring mvc 使用单元测试非常方便,但是,受不了单元测试的启动速度。用python写了一个小脚本,用于测试接口,

测试脚本配置文件

api.yaml

server:

api:

name:

#api-v2-neighbor-list.yaml

- api/v2/neighbor/list

api-v2-neighbor-list.yaml

接口配置文件

method:

post

data:

#post 的 body 的json

postSid: a1

userSid: u2

python 脚本

import requests, json, yaml, sys

def apiTest(apiName):

f = open("api.yaml")

obj = yaml.safe_load(f)

f.close()

if apiName != "":

runApi(obj["server"]["url"] + apiName, apiName.replace("/", "-") + ".yaml")

return;

apis = obj['api']["name"]

for api in apis:

runApi(obj["server"]["url"] + api, api.replace("/", "-") + ".yaml")

def runApi(url, dataFile):

headers = {'Content-Type' : 'application/json; charset=UTF-8',

'X-Requested-With' : 'XMLHttpRequest',

'Connection' : 'keep-alive',

'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'

}

如何使用python进行json的接口测试

说明

sep:分隔符。可以为空

seq:要连接的元素序列、字符串、元组、字典

上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

返回值:返回一个以分隔符sep连接各个元素后生成的字符串

python的哪个模块可以做接口测试

python接口测试

1.安装python环境

2.下载python IDE(pyCharm)

备注:

requests是python的要给HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而部用urllib2呢?官方文档中是这样说的:

python的标准库urllib2提供了大部分需要的HTTP功能,但API太逆天了,一个简单的功能需要一大堆代码。而requests比较简洁,能用更少的代码实现。

3.下载 安装 requests第三方模块

下面就进行接口测试

要使用 requests 首先需要在文件中引用

[python] view plain

import requests

[python] view plain

# 解析json需要

[python] view plain

import json

[python] view plain

# url:接口地址

[python] view plain

# data: 接口需要的数据

[python] view plain

# headers:接口需要的传递的headers数据

[python] view plain

# files:若是接口中需要上传文件则需要用到该参数

[python] view plain

r = requests.post(url, data=data, headers=headers)

[python] view plain

r = requests.post(url, data=data, headers=headers, files=files)

[python] view plain

# 获取 接口返回的数据信息并解析(如果返回的是json格式的话)

[python] view plain

json_data = json.loads(r.text)

[python] view plain

我一直用这样的方法写了20个接口进行测试,突然发现好像代码有很多重复的呀,是不是可以把重复的内容进行封装一下了?

[python] view plain

封装如下:

[python] view plain

Basics_Requests.py

[python] view plain

import requests

import json

'''''

#xx_url:接口连接url

#data:接口data需要传递的数据(数据格式一般为Dictionary)

#headers:接口headers需要传递的数据(数据格式一般为Dictionary)

#variable:headers 中需要改变的参数字段(数据格式为list)

'''

class Basics():

# 初始化

def __init__(self, xx_url, data, headers, variable):

self.xx_url = xx_url

self.data = data

self.headers = headers

self.variable = variable

def basicsparameter(self):

# 发起post请求

url_data = requests.post(self.xx_url, data=self.data, headers=self.headers)

# 把得到的数据转成json格式

data_json = json.loads(url_data.text)

# 改变请求中的参数值

if self.variable != '':

for i in self.variable:

self.headers[i] = data_json[i.lower()]

# 把请求的 数据 和 headers 存入 list中

dic_data = {'data_json': data_json, 'headers': self.headers}

return dic_data

调用封装方法:

[python] view plain

Test.py

[python] view plain

Basics_Requests

[python] view plain

Basics_Requests.Basics(url, row_data, headers, variable).basicsparameter()

[python] view plain

python的web接口测试工具哪个好

我曾经实现过web测试的自动化库,主要说一下模拟浏览器部分:

对于IE,mshtml组件+一些windows API足够了,因为IE浏览器本身就是构建在这个组件之上,用这个跟真实的浏览器行为非常一致

对于Firefox,我们的方式是写一个plug in用来跟firefox通讯,然后通过javascript完成全部操作,再辅以windows api的鼠标/键盘/外层窗口 操作

其它浏览器未涉及

但是根据我的经验,这种UI自动化测试是费力不讨好的事情:

难以做到高可靠性,因为特殊情况很多,特别是在windows上

实践经验,这种测试能测出来的bug并不多,还要花时间在写/维护/测试自动化测试脚本上面。写出的脚本可重用性也很一般,经常要写新的case,否则固定化的测试案例毫无意义。 而且对测试人员的技术能力要求直线上升。 真正UI上的bug反而多是测试人员人工做ad hoc时发现的

所以倾向于把测试重心放在底层接口以及集成部分的测试,好自动化而且收益可观+

转载请注明出处365教育网 » python接口测试例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值