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

        = 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

                += 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/401483.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

undo日志详解

一、undo日志介绍 上一节详细的说了redo日志,redo日志的功能就是把增删改操作都记录着,如果断电导致内存中的脏页丢失,可以根据磁盘中的redo日志文件进行恢复。redo日志被设计出来是为了保证数据库的持久性,undo日志设计出来是为…

从故宫修建看「软件物料清单」的重要性 @安全历史01

故宫,这座中国传统文化的重要代表和象征性建筑已屹立近600年,是世界上现存规模最大、保存最为完整的木质结构古建筑之一。 故宫之所以能至今保存完好,除持续保护和修缮外,其使用的木材和砖石等材料也经过了精挑细选,保…

一周学会Django5 Python Web开发-Django5路由重定向

锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计25条视频,包括:2024版 Django5 Python we…

图片速览 PrintListener: 通过手指摩擦声发现指纹认证漏洞

原有一些方法主要是用字典猜测的方式来解锁的,文章的方法利用了用户滑手机屏幕产生的声音来辅助指纹的生成,且本文所提方案的准确性要更高(文章采样了各种环境、各种情况的数据,详见原文)。 PrintListener的攻击场景广泛且隐蔽。它只需要记录…

小米标准模组+MCU 快速上手开发(一)——之固件下载

小米标准模组+MCU 开发笔记之固件下载 背景技术名词简介● 小米IoT开发者平台● 小米IoT 模组● ESP系列简介问题描述 + 解决方式问题1:固件下载是否有示例,如何下载到硬件板卡中?问题2:固件下载的官方程序是什么?在哪里?该如何使用?问题3:固件下载时,Flash和Ram 有什…

安全这么卷了吗?北京,渗透,4k,不包吃住,非实习

起初某HR找人发了条招聘信息 看到被卷到4k一个月被震惊到了 随后发布了朋友圈,引起来众多讨论 对此网友发表众多评价 越来越卷的工作现象确实是一个普遍存在的问题 另外,也可以考虑和雇主沟通, 寻求更合理的工作安排, 或者…

C#,大规模图(Large Graph)的均匀成本搜索之迪杰斯特拉(Dijkstra)算法与源代码

1 均匀成本搜索 均匀成本搜索是迪杰斯特拉算法的变体。这里,我们不是将所有顶点插入到一个优先级队列中,而是只插入源,然后在需要时一个接一个地插入。在每一步中,我们检查项目是否已经在优先级队列中(使用访问数组)。如果是&…

flink反压

flink反压(backpressure),简单来说就是当接收方的接收速率低于发送方的发送速率,这时如果不做处理就会导致接收方的数据积压越来越多直到内存溢出,所以此时需要一个机制来根据接收方的状态反过来限制发送方的发送速率&…

精英ECS Z97-MACHINE V1.0 BIOS MX25L6406E

官网上的两个BIOS我都无法亮机,这是我保存出来的BIOS,不知道是否能使用五代的处理器 官网:Z97-MACHINE|Motherboard|产品|ECS 精英电脑 国外老哥的看法:ECS Z97-MACHINE Closer Look: The BIO…

手拉手助成长社会融合实践活动之新春送温暖

2月21日上午来自合肥市第四十五中学橡树湾校区七(15)中队、共青团合肥市第六中学2023级36班委员会的40多名同学,带来了龙年的礼物看望陪伴合肥市庐阳区为民社会工作服务中心幸福小院的兄弟姐妹。 大家详细地了解了幸福小院孩子们学习、康复和社会实践及能力提升情况…

CSS列表学习2

之前学习了列表&#xff1b;继续熟悉&#xff1b; <!DOCTYPE html> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/><title></title><meta charset"utf-8" /><…

通用性技术底座AI大模型与各行业专用性AI小模型搭建(第二篇)

五、小模型架构选择问题 在选择行业专用AI小模型的架构时&#xff0c;需要考虑以下几个关键因素&#xff1a; 1. **任务类型**&#xff1a; - 不同的任务类型&#xff08;如分类、回归、序列生成、图像识别等&#xff09;对应着不同的模型结构。例如&#xff0c;文本分类问…

Ansible cron模块 适用于管理计划任务 设置多个计划任务

目录 选项添加一个计划任务检查是否添加成功删除计划任务检查是否执行成功 选项 其使用的语法跟我们的crontab文件中的语法一致&#xff0c;同时&#xff0c;可以指定以下选项&#xff1a; day #日应该运行的工作( 1-31, , /2, ) hour # 小时 ( 0-23, , /2, ) minute #分钟( 0…

Leetcode 26-30题

删除有序数组中的重复项 给定一个有序数组&#xff0c;要求原地删除重复出现的元素&#xff0c;返回删除后的数组的长度。 这里的原地删除其实可以这样表示&#xff0c;用双指针从前往后扫一遍&#xff0c;遇到新的没出现过的元素就放到前面去&#xff0c;就可以实现删除后的数…

【杭州游戏业:创业热土,政策先行】

在前面的文章中&#xff0c;我们探讨了上海、北京、广州、深圳等城市的游戏产业现状。现在&#xff0c;我们切换视角&#xff0c;来看看另一个游戏创业热土——杭州的发展情况 最近第19届亚运会在杭州举办&#xff0c;本次亚运会上&#xff0c;电子竞技首次获准列为正式比赛项…

了解 Kubernetes

1 Kubernetes概述 1.1 k8s是什么 K8S 的全称为 Kubernetes (K12345678S)&#xff0c;PS&#xff1a;“嘛&#xff0c;写全称也太累了吧&#xff0c;不如整个缩写” 作用&#xff1a; 用于自动部署、扩展和管理“容器化&#xff08;containerized&#xff09;应用程序”的开…

Manacher算法和扩展kmp

Manacher算法 a情况 b情况 具体例子 c情况 总结 代码 #include<iostream> #include<algorithm> #include<string> #include<cmath>using namespace std; const int N 1.1e7 1; char ss[N << 1]; int p[N << 1]; int n; void manacherss…

vue中使用AraleQRCode生成二维码

vue中使用AraleQRCode生成二维码 问题背景 本文介绍vue中生成二维码的一种方案&#xff0c;使用AraleQRCode来实现。 问题分析 &#xff08;1&#xff09;安装对应的依赖包 npm i arale-qrcode --save &#xff08;2&#xff09;完整代码如下: <template><!-…

深入解析SDRAM:从工作原理到实际应用

深入解析SDRAM&#xff1a;从工作原理到实际应用 在众多内存技术中&#xff0c;同步动态随机访问存储器&#xff08;SDRAM&#xff09;因其出色的性能和广泛的应用而备受关注。本文将从SDRAM的工作原理入手&#xff0c;探讨其性能优化策略和在现代电子设备中的应用。 SDRAM工作…

多系统集成分析——WMS系统与PLM、ERP、MES、智库、WCS、AGV、OA系统的关联

多系统集成分析——WMS系统与PLM、ERP、MES、智库、WCS、AGV、OA系统的关联 原创 西游暖暖 白话聊IT 2024-02-19 00:06 天津 首先分享一个已上线的智能工厂架构图&#xff1a;智能制造全场景下&#xff0c;将WMS定位于不仅是仓储执行管理系统&#xff0c;更作为连接全方案的“…