python 接口自动 替换_Python接口自动化测试实战

b58cc69f4b6f778d21d7aaf53562ee8c.png

在当前互联网产品更新迭代的快节奏下,回归测试的时间被严重压缩,在金融领域和其他互联网应用场景下,支付、转账、清算往往是核心功能,为了确保资金安全和快速到账,接口在对用户名、账户名中的特殊字符的正确处理显得尤为重要。

1644a53e7bf2dc80244dd26d55c36998.png

特殊字符极其丰富,手工测试往往需要耗费大量成本,接口自动化测试因其实现简单、维护成本低、容易提高覆盖率等特点,越来越受重视。

Python由于可移植性好、第三方库丰富、上手简单而成为一种便捷高效的接口自动化测试工具。使用python向接口发送请求,一般包含以下步骤:

1.请求的组装:请求信息一般包含接口的URL,以及一些其他可能需要的信息,比如headers,post请求需要用的data等;

2.请求的发送:请求组装好后进行请求的发送,一般分为GET和POST方法,如果需要向接口传输数据,可以在data中传输,并获取返回数据;

3.响应的解析:接收返回的数据并进行解析。

Python实现了成熟的请求方法,目前新版的python3版本较好地支持第三方库requests,灵活组装请求,发送请求,获取响应信息,支持JSON、文件等多种数据传输格式。

安装好requests后,导入,并简单组装一个get请求:

#导入requests包

import requests

#接口URL,这里以一个虚拟网址为例

url = ‘http://test.org’

response = requests.get(url)

print(response.txt)

带有数据的post请求:

import requests

url = "http://test.org/post"

data = '''{

"name": "张三",

"age": 18

}'''

response = requests.post(url=url, data=data)

print(response.text)

在日常接口测试中,经常需要设计反向案例验证接口对于异常场景的覆盖,比如对特殊字符的处理,依赖人工输入验证比较低效,利用python读取特殊字符集的账号,传入请求数据中,即可快速完成特殊字符集的接口测试,满足多种场景的测试。

利用python的csv模块读取储存字符集的csv文件的方法如下:

import csv

with open('data.csv', 'r') as f:

reader = csv.reader(f)

print(type(reader))

for row in reader:

print(row)

下面以简单的汇款场景为例,进行特殊字符集的接口测试。首先构造接口的输入数据,以字典格式定义;读取特殊字符集,以列表储存;接下来就可以构造请求内容:遍历列表,替换账户名中的字符为特殊字符,发起请求,读取响应结果。具体步骤和代码如下。

import requests, csv

url = ‘http://kuahangzhuanzhang.org/post’

#构造输入数据

data = {

“sendaccnm”: “王小林”,

“sendaccno”: “1234567890”,

“sendbkno”: “103100000026”,

“recvaccnm”: “马小腾”,

“recvaccno”: “2345678901”,

“recvbkno”: “105100000017”

}

#定义列表,读取特殊字符集文件,列表储存

li = []

with open('data.csv', 'r') as f:

reader = csv.reader(f)

for row in reader:

li.append(row[0])

#替换data中的数据,产生带有特殊字符的户名数据并发起请求

for i in range(len(li)):

new_accnm = data.get("sendaccnm").replace(data.get("sendaccnm")[1],li[i])

data["sendaccnm"]=new_accnm

print(data) #可打印一下替换后的数据

response = requests.post(url=url, data=data)

print(response.text) #打印响应数据

fa5e385967ce08e68becf1d79aeb3d80.png

请求数据中,原账户名都已经被替换成带有特殊字符的账户名,对于生僻字、少数民族姓名、外国人姓名等含特殊字符的场景,实现了特殊字符的接口自动化测试。

每天学点干货技能:

知乎1000W+人热议:面试想拿10K,HR说你只值7K,怎么办?​mp.weixin.qq.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值