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

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,当然如果要加,也简单。

以下是我的代码:

# -*- 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

最新文章

  1. [LeetCode] Search a 2D Matrix 搜索一个二维矩阵
  2. 【2016-10-27】【坚持学习】【Day14】【VS 配置管理器 AssemblyInfo 】
  3. java 调用 sql server存储过程
  4. 配置grunt进行css、js的检查、合并和压缩
  5. Mac 连接阿里云服务器
  6. jquery mobile界面数据刷新
  7. C#重启系统代码
  8. JavaCC首页、文档和下载 - 语法分析生成器 - 开源中国社区
  9. STL:string 大小(Size)和容量(Capacity)
  10. php在apache中一共有三种工作方式:CGI模式、FastCGI模式、Apache 模块DLL
  11. html img 使用data格式加载图片
  12. Hive ERROR: Out of memory due to hash maps used in map-side aggregation
  13. Android OpenGL ES(五)GLSurfaceView .
  14. Java文件及文件夹的创建与删除
  15. ORACLE数据闪回
  16. java学习--修饰符
  17. 软件测试中Bug的生命周期以及Bug的严重等级
  18. CentOS7 安装kylin2.6.0集群
  19. (转)SQL知识_SQL Case when 的使用方法
  20. SharePoint Set-SPUser 命令拒绝访问

热门文章

  1. chrome开发者工具--使用 Network 面板测量您的网站网络性能。
  2. Dapper: How to get return value ( output value) by call stored procedure
  3. Android开发学习了这些,上帝都淘汰不了你
  4. BigDecimal加减乘除计算
  5. Windows server服务器入侵检查
  6. Easyui 验证验证扩展,限制combobox 只能输入选项内容
  7. 11、Python函数基础(定义函数、函数参数、匿名函数)
  8. 【Javascript】call
  9. CF1102D-Balanced Ternary String-(贪心)
  10. flutter中的异步机制Future