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