热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

初练接口测试脚本

引言:直接去编写一个完全没有接触过得脚本无疑是非常困难的,但是采取拆分以及迭代的方法一步步编写脚本就会好理解很多。目录v1.0发送请求,

引言:直接去编写一个完全没有接触过得脚本无疑是非常困难的,但是采取拆分以及迭代的方法一步步编写脚本就会好理解很多。


目录

v1.0 发送请求,获取响应结果

v2.0 传入接口测试数据

v3.0 对响应结果进行校验,得出测试结论

v4.0 从文件中传入多组测试数据

v5.0  把每一组测试数据对应的测试结果写入接口测试报告中




接口信息
接口请求地址:http://localhost:8080/jwshoplogin/user/login.do
接口请求参数:1.username:李明 2.password:123456
预期结果:登录成功、用户名不存在、密码错误





v1.0 发送请求,获取响应结果


  1. 定义接口请求地址:url = "接口请求地址"
  2. 通过request对象调用post方法发送请求,并接受响应:respOnse= request.post(url).text
  3. 调式脚本:print响应结果

v1.0代码如下:

# 针对登录接口进行测试
# 接口请求地址:http://localhost:8080/jwshoplogin/user/login.do
# 接口请求参数:1.username:李明 2.password:123456
# 预期结果:登录成功、用户名不存在、密码错误
import requests
url = "http://localhost:8080/jwshoplogin/user/login.do"
respOnse= requests.post(url).text
print(response)

运行结果如下,因为没有输入参数,所以可以当成是输入为空。

{"status":1,"msg":"用户名不存在"}




v2.0 传入接口测试数据


  1. 定义字典类型进行接口参数的赋值:userinfo = {"username":"李明", "password":"123456"}
  2. 传入到post方法中:respOnse= request.post(url, data=userinfo).text

v2.0代码如下:

import requests
url = "http://localhost:8080/jwshoplogin/user/login.do"
userinfo = {"username":"李明","password":"123456"}
respOnse= requests.post(url, data=userinfo).text
print(response)

运行结果如下:

{"status":0,"msg":"登录成功"}




v3.0 对响应结果进行校验,得出测试结论


  1. 调用find方法,查找返回的字符中是否存在对应的信息:msg = response.find("预期结果")
  2. 判断语句得出相关的测试结论先用if语句实现功能。

v3.0代码如下:

import requests
url = "http://localhost:8080/jwshoplogin/user/login.do"
userinfo = {"username":"李明","password":"123456"}
respOnse= requests.post(url, data=userinfo).text
print(response)
msg = response.find("登录成功")
if msg > 0:print("测试通过")
else:print("测试失败")




v4.0 从文件中传入多组测试数据


  1. 准备测试数据的csv文件
  2. 读取csv文件中的测试数据
    1. 以只读方式打开文件:file = open("userinfo.csv", "r")
    2. 获取文件中的数据--循环结构
      1. table = csv.reader(file)
      2. for row in table:
      3. print(row[下标])
    3. 把测试数据放入字典中:userinfo["参数的名字"] = row[下标]

v4.0代码如下:

import requests
import csv
# 1、调用接口
url = "http://localhost:8080/jwshoplogin/user/login.do"
# 2、传入接口参数
# 2.1 读取csv文件中的数据
file = open("userinfo.csv", "r")
table = csv.reader(file)
# 把测试数据放入字典中
userinfo = {}
for row in table:userinfo["username"] = row[0]userinfo["password"] = row[1]# 3、获取接口响应结果respOnse= requests.post(url, data=userinfo).textprint(response)# 4、进行比对,得出测试结论msg = response.find(row[2])if msg > 0:print("测试通过")else:print("测试失败")




v5.0  把每一组测试数据对应的测试结果写入接口测试报告中


  1. 创建一个可写入的文件:file2 = open("test_result.csv", "w")   # 因为文件不能同时阅读和书写,所以只能创建一个新的文件去填写测试数据。
  2. 向文件中写入内容file2.write("李明" + "," + "123456" + "," + "登录成功" + "\n")  # 后面一定要加一个换行符,不然在写入的表格的时候不会自动换行。
  3. 最后记得关闭文件

v5.0代码如下:

import requests
import csv
file1 = open("userinfo.csv", "r")
file2 = open("test_result.csv", "w")
# 1、调用接口
url = "http://localhost:8080/jwshoplogin/user/login.do"
# 2、传入接口参数
table = csv.reader(file1)
userinfo = {}
for row in table:userinfo["username"] = row[0]userinfo["password"] = row[1]# 3、获取接口响应结果respOnse= requests.post(url, userinfo).textprint(response)r = response.find(row[2])if r > 0:print("测试通过") # 加print便于检查代码,后期可以注释掉file2.write(row[0] + "," + row[1] + "," + row[2] + "," + "测试通过" + "\n")else:print("测试失败")file2.write(row[0] + "," + row[1] + "," + row[2] + "," + "测试失败" + "\n")file2.close()


推荐阅读
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 本文介绍如何使用 Angular 6 的 HttpClient 模块来获取 HTTP 响应头,包括代码示例和常见问题的解决方案。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用
    本文来安利大家一个有趣而且强大的库,通过F#和C#混合编程编写WPF应用,可以在WPF中使用到F#强大的数据处理能力在GitHub上完全开源Elmis ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 深入理解 .NET 中的中间件
    中间件是插入到应用程序请求处理管道中的组件,用于处理传入的HTTP请求和响应。它在ASP.NET Core中扮演着至关重要的角色,能够灵活地扩展和自定义应用程序的行为。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 本文详细介绍了在使用 SmartUpload 组件进行文件上传时,如何正确配置和查找文件保存路径。通过具体的代码示例和步骤说明,帮助开发者快速解决上传路径配置的问题。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • 微信小程序:授权登录与手机号绑定
    本文详细介绍了微信小程序中用户授权登录及绑定手机号的流程,结合官方指引和实际开发经验,提供了一套完整的实现方案,帮助开发者更好地理解和应用。 ... [详细]
author-avatar
手机用户2502907993
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有