python自动化接口测试

前几天,同组姐妹说想要对接口那些异常值进行测试,能否有自动化测试的方法。仔细想了一下,工具还挺多,大概分析了一下:

1、soapui:可以对接口参数进行异常值参数化,可以加断言,一般我们会加httpcode是否200的较验,或者返回值json里是否有success标识等

2、LR:脚本容易,但是不易于维护,还有就是使用成功高

3、自己写脚本:java\python都行

其实,作为一个测试来讲,每次功能测试过程 中,都会遇到要写些小脚本辅助测试的时候,这些小脚本并不能完全称作为"自动化",但是这些小脚本确实是帮忙我节省了效率,可能运行结果只是我控制台输出的log而已,但对于个人使用已足够

我想了一下,做了个简单的脚本,思路不复杂,主要是想做:

例如有一个Get接口:

https://ics.pcauto.com.cn/magear/s/pcauto/wenda/tagTopics.xsp?pageNo=1\&tagId=2836

其中URL是:https://ics.pcauto.com.cn/magear/s/pcauto/wenda/tagTopics.xsp

pageNo和tagId是参数,我想要做的就是,有一个文本,里面存储的是一些异常值

如下图:

我想要自动化去帮我把这些异常值带入pageNo或tagId中然后去发送get请求,然后获取响应结果,

但因为这里可能没那么多,同一类型的参数值只有一个,

还有就是我们的接口返回做的不规范,有时候输入异常是一个200状态但标识是status:0,有时候又是直接400或500的返回,所以用于个人测试,我这里没有做结果判断error还是fail,当然如果要加,也简单。

以下是我的代码:

|----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # -*- coding:utf-8 -*- ''' @Author :xx @Version : v1.0 @File :wexcel.py @CreateTime :2019-11-06 上午 11:23 ''' import xlrd import requests import xlsxwriter class wexcel: ``#参数化 ``def xlwd_excel_param(``self``, url, input_params_file, excel_file, get_params): ``workbook ``= xlsxwriter.Workbook(excel_file) ``# 创建一个Excel文件 ``worksheet ``= workbook.add_worksheet() ``# 创建一个sheet ``title ``= [U``'输入'``,U``'输出'``, U``'测试参数'``] ``# 表格title ``worksheet.write_row(``'A1'``, title) ``# title 写入Excel ``i ``= 0 ``#循环读取get_params ``for key ``in get_params: ``paramlist ``= open``(input_params_file, ``'r'``) ``#当运行第1个的参数的时候,值替换为line ``# print(key) ``for line ``in paramlist: ``get_params[key]``=``line ``i ``+``= 1 ``num ``= str``(i``+``1``) ``row ``= "A" + num ``col ``= "B" + num ``third ``= "C" +``num ``response ``= requests.get(url, params``=``get_params) ``res ``= response.text ``worksheet.write_row(row, [line]) ``worksheet.write_row(col, [res]) ``worksheet.write_row(third, [key]) ``print``(line,``'--------'``,res,``'-------'``,key) ``workbook.close() a``=``wexcel() input_params_file``=``"E:\\param\\input.txt" excel_file``=``"E:\\param\\res.xls" url``=``"https://xx.pcauto.com.cn/magear/s/pcauto/wenda/questionDetail.xsp" res_data ``= { ``'pageNo'``: ``1``, ``'qid'``: ``'1114031' } a.xlwd_excel_param(url,input_params_file,excel_file,res_data)   |

跑出来的结果是:

基本上,对业务熟悉的人,一眼就知道对错了。如果你的接口规范,可以获取json值,加上断言,直接输出error或success

相关推荐
用户83562907805126 分钟前
使用 Python 对 PDF 文档进行数字签名的方法
后端·python
ttwuai1 小时前
Go 后台接口 401/403 排查:JWT 过期、刷新请求和权限码怎么定位
开发语言·golang·状态模式
李可以量化1 小时前
PTrade 量化入门必学:get\_trading\_day 交易日函数全解与实战(下)
python
柒和远方1 小时前
LeetCode 139. 单词拆分 —— 从暴力回溯到 DP 完全背包
javascript·python·算法
漫随流水1 小时前
Java——springboot web案例
java·开发语言·spring boot
从此以后自律1 小时前
Java Object 类常用方法全讲解
java·开发语言
半兽先生1 小时前
大模型实现金融文本分类
人工智能·python·金融
汤姆小白2 小时前
06-LoRA参数高效微调
人工智能·python·机器学习·transformer
XH华2 小时前
C++语言第二章类和对象(下)
开发语言·c++
从零开始的代码生活_2 小时前
C++ stack、queue 与 priority_queue:容器适配器原理与实战
开发语言·c++·后端·学习·算法