ChatGPT与接口测试

2023-12-16

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客 文章浏览阅读1.3k次,点赞60次,收藏8次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块…… https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5501

1 python requests类

描述化输入

输入

用python resuests类对下面HTTP请求产生接口测试单元测试用例

目标:/login_action/

方法:POST

参数:csrfmiddlewaretoken:fxljYKsDtuE7FlONP8Pe6xwkcEZxKqVc2eDOuVc94DWhmRpuQTqRqqqOCX5ITNOT,username:cindy,password:123456进行SHA256散列

cookies:csrftoken:fxljYKsDtuE7FlONP8Pe6xwkcEZxKqVc2eDOuVc94DWhmRpuQTqRqqqOCX5ITNOT

ChatGPT回答

下面是一个使用Python的unittest框架编写的接口测试单元测试用例,用于测试127.0.0.1:8000/login_action/接口的POST请求。

import unittest
import requests    
import hashlib
class TestLoginAction(unittest.TestCase):
    def test_login_action_success(self):
        url = "http://127.0.0.1:8000/login_action/"
        data = {
            "csrfmiddlewaretoken": "fxljYKsDtuE7FlONP8Pe6xwkcEZxKqVc2eDOuVc94DWhmRpuQTqRqqqOCX5ITNOT",
            "username": "cindy",
            "password": hashlib.sha256("123456".encode('utf-8')).hexdigest()
        }
        cookies = {
            "csrftoken": "fxljYKsDtuE7FlONP8Pe6xwkcEZxKqVc2eDOuVc94DWhmRpuQTqRqqqOCX5ITNOT"
        }
        
        response = requests.post(url, data=data, cookies=cookies)
        
        # 检查响应状态码
        self.assertEqual(response.status_code, 200)    
        
        # 检查响应内容
        self.assertEqual(response.json(), {"message": "Login successful"})
if __name__ == '__main__':
    unittest.main()

在这个示例中,我们使用unittest框架编写了一个测试用例TestLoginAction,其中包含一个测试方法test_login_action_success。在这个方法中,我们使用requests库发送了一个POST请求到指定的URL,并传递了必要的数据和cookies。然后我们检查了响应的状态码和内容,以确保接口的正确性。

你可以根据实际情况修改URL、数据和cookies,以及相应的断言来编写更多的测试用例。

运行代码


结论:F
======================================================================
FAIL: test_login_action_success (__main__.TestLoginAction.test_login_action_success)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\xiang\Desktop\1.py", line 20, in test_login_action_success
    self.assertEqual(response.status_code, 200)
AssertionError: 404 != 200
               
----------------------------------------------------------------------
Ran 1 test in 0.357s
FAILED (failures=1)

当你提供的是本地服务器地址时,你可以使用以下代码中的URL变量来指定目标URL。另外,你需要确保本地服务器正在运行,并且可以访问到/login_action/接口。

由于输出是HTML,修改产生的代码:

Traceback (most recent call last):
  File "C:\Users\xiang\Desktop\1.py", line 24, in test_login_action_success
    self.assertEqual(response.json(), {"message": "Login successful"})

修改代码

import unittest
import requests
import hashlib
class TestLoginAction(unittest.TestCase):
    def test_login_action_success(self):
        url = "http://127.0.0.1:8000/login_action/"
        data = {
            "csrfmiddlewaretoken": "fxljYKsDtuE7FlONP8Pe6xwkcEZxKqVc2eDOuVc94DWhmRpuQTqRqqqOCX5ITNOT",
            "username": "cindy",
            "password": hashlib.sha256("123456".encode('utf-8')).hexdigest()    
        }
        cookies = {
            "csrftoken": "fxljYKsDtuE7FlONP8Pe6xwkcEZxKqVc2eDOuVc94DWhmRpuQTqRqqqOCX5ITNOT"
        }
                response = requests.post(url, data=data, cookies=cookies)
       
        # 检查响应状态码
        self.assertEqual(response.status_code, 200)
                # 检查响应内容
        self.assertIn("     
",response.text)
if __name__ == '__main__':
unittest.main()

用网页产生代码

输入

用python resuests类对下面HTML页面产生接口测试单元测试用例

目标:http://127.0.0.1:8000/login_action/

方法:POST

网页

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<meta name="viewport" content="width=device-width,
initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<meta name="description" content="">
<meta name="author" content="">
<title>电子商务系统-登录</title>
<!-- Bootstrap core CSS -->
<link href="/static/css/signin.css"
rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/static/css/bootstrap.min.css"
rel="stylesheet">
 <link
href="/static/css/my.css" rel="stylesheet">
 <script
type="text/javascript"
src="/static/js/sh256.js"></script>
 <script
type="text/javascript" >
 function
SHA256Password()
{
 document.forms["myForm"]["password"].value
= SHA256(document.forms["myForm"]["password"].value);
 return
true;
 }
</script>
</head>
<body>
<div class="container">
<form class="form-signin" name="myForm"
method="post" action="/login_action/"
enctype="multipart/form-data" onsubmit="return
SHA256Password()">
   <input type="hidden"
name="csrfmiddlewaretoken"
value="uwQOB9mHwqBm7faecgzOXi26r4wPz6e9Mip2rlGG9HBqcusud5mkHRa3e4qs7Lh6">
<h2 class="form-signin-heading">电子商务系统-登录</h2>
<p>
<label for="id_username">用户名:</label>
<input type="text" name="username"
maxlength="100" required id="id_username" value="cindy">

</p>
<p>
<label for="id_password">密码  :</label>
<input type="password" name="password" required
id="id_password" value="123456">     
</p>
<p style="color:red"></p> <br>
<button class="btn btn-lg btn-primary btn-block"
type="submit">登录</button><br>
 <a
href="\register\">注册</a>
</form>
 </div> <!--
/container -->
 </body>
</html>

password:sha256散列

cookies

cookies:csrftoken: "uwQOB9mHwqBm7faecgzOXi26r4wPz6e9Mip2rlGG9HBqcusud5mkHRa3e4qs7Lh6"

ChatGPT回答

以下是使用Python中的requests库编写的接口测试单元测试用例示例,用于模拟发送POST请求到指定的URL,并使用指定的参数和cookies:

import requests
import unittest
import hashlib  
class TestLoginActionAPI(unittest.TestCase):
    def setUp(self):
        self.base_url = "http://127.0.0.1:8000/login_action/"
    def sha256_hash(self, password):
        return hashlib.sha256(password.encode('utf-8')).hexdigest()
    def test_login_action(self):
        csrf_token = "uwQOB9mHwqBm7faecgzOXi26r4wPz6e9Mip2rlGG9HBqcusud5mkHRa3e4qs7Lh6"
        username = "cindy"
        password = self.sha256_hash("123456")
        payload = {
            'csrfmiddlewaretoken': csrf_token,
            'username': username,
            'password': password
        }
        cookies = {
            'csrftoken': csrf_token
        }
        response = requests.post(self.base_url, data=payload, cookies=cookies)
        # 添加断言来验证响应状态码和内容  
        self.assertEqual(response.status_code, 200)
        # 添加更多断言来验证API响应
if __name__ == '__main__':
    unittest.main()

在这个示例中,我们使用了Python的unittest模块来编写测试用例。setUp方法用于设置测试用例所需的基本URL,sha256_hash方法用于对密码进行SHA256散列处理,test_login_action方法用于测试登录操作,其中使用了指定的csrf token和用户名密码。

你需要根据你的具体情况和接口的预期行为来编写适当的断言语句,以验证接口的行为是否符合预期。

运行代码

测试通过

2 产生JMeter文件的jmx文件

输入

对下面HTTP请求产生用JMeter文件的jmx文件。

目标:127.0.0.1:8000/login_action/

方法:POST

参数:csrfmiddlewaretoken:fxljYKsDtuE7FlONP8Pe6xwkcEZxKqVc2eDOuVc94DWhmRpuQTqRqqqOCX5ITNOT,username:cindy,password:123456进行SHA256散列

cookies:csrftoken:fxljYKsDtuE7FlONP8Pe6xwkcEZxKqVc2eDOuVc94DWhmRpuQTqRqqqOCX5ITNOT

ChatGPT回答

以下是一个简单的JMeter测试计划示例,用于模拟发送POST请求到指定的URL,并使用给定的参数和cookies。你可以将以下内容保存到一个名为login_action.jmx的文件中。

import requests
import unittest
import pandas as pd
import hashlib
class TestLoginActionAPI(unittest.TestCase):
    def setUp(self):
        self.base_url = "http://127.0.0.1:8000/login_action/"
    def read_test_data(self):
        test_data = pd.read_excel('data.xlsx')
        return test_data.values.tolist()
    def sha256_hash(self, password):
        return hashlib.sha256(password.encode('utf-8')).hexdigest()
    def test_login_action_with_valid_credentials(self):
        test_data = self.read_test_data()
        for data in test_data:
            csrfmiddlewaretoken = data[0]
            username = data[1]  
            password = self.sha256_hash(data[2])
            csrftoken = data[0]  # Assuming csrftoken is in the first column of data.xlsx
            payload = {
                'csrfmiddlewaretoken': csrfmiddlewaretoken,
                'username': username,
                'password': password
            }
            cookies = {
                'csrftoken': csrftoken
            }
            response = requests.post(self.base_url, data=payload, cookies=cookies)
            # Add assertions to validate the response status code and content
            self.assertEqual(response.status_code, 200)
            # Add more assertions as per the API response
    def test_login_action_with_invalid_credentials(self):
        # Write test cases for invalid credentials
        pass
if __name__ == '__main__':
    unittest.main()  

在这个示例中,我们使用了Python的unittest模块来编写测试用例。setUp方法用于设置测试用例所需的基本URL,read_test_data方法用于从Excel文件中读取测试数据。sha256_hash方法用于对密码进行SHA256散列处理,test_login_action_with_valid_credentials方法用于测试使用有效凭据进行登录操作,test_login_action_with_invalid_credentials方法用于测试使用无效凭据进行登录操作。

你需要根据你的具体情况和接口的预期行为来编写适当的断言语句,以验证接口的行为是否符合预期

运行代码

测试通过

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时, 请及时加入群: 786229024 ,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】 在这里插入图片描述
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ChatGPT与接口测试 的相关文章

  • 软件测试|Selenium StaleElementReferenceException 异常分析与解决

    简介 Selenium 是一个流行的自动化测试工具 用于模拟用户与网页交互 然而 当我们在使用 Selenium 时 可能会遇到一个常见的异常 即 StaleElementReferenceException 这个异常通常在我们尝试与网页上
  • 软件测试|使用matplotlib绘制多种柱状图

    简介 在数据可视化领域 Matplotlib是一款强大的Python库 它可以用于创建多种类型的图表 包括柱状图 本文将介绍如何使用Matplotlib创建多种不同类型的柱状图 并提供示例代码 创建基本柱状图 首先 让我们创建一个基本的柱状
  • 软件测试|教你使用Python下载图片

    前言 我一直觉得Windows系统默认的桌面背景不好看 但是自己又没有好的资源可以进行替换 突然我一个朋友提醒了我 网络上的图片这么多 你甚至可以每天换很多个好看的背景 但是如果让我手动去设置的话 我觉得太麻烦了 我不如使用技术手段将图片下
  • 软件测试|如何使用selenium处理iframe富文本输入框

    简介 在网页开发中 富文本框是常见的元素 用于输入富文本内容 如富文本编辑器或邮件编辑器 如果我们要使用Python和Selenium进行自动化测试或操作这种富文本框 可能会遇到一些挑战 本文将详细介绍如何使用Python和Selenium
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 测开和测试平台是否有存在的必要?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 甜蜜而简洁 —— 深入了解Pytest插件pytest-sugar

    在日常的软件开发中 测试是确保代码质量的关键步骤之一 然而 对于测试报告的生成和测试结果的可读性 一直以来都是开发者关注的焦点 Pytest插件 pytest sugar 以其清晰而美观的输出 为我们提供了一种愉悦的测试体验 本文将深入介绍
  • 探索自动化测试断言:提升测试效率与质量的关键!

    前言 断言在自动化测试中起着关键的作用 它是验证测试结果是否符合预期的重要手段 如果在自动化测试过程中忽视了断言 那么这个测试就失去了其本质的意义 因为我们无法得知测试结果是否达到了预期的效果 因此 断言在自动化测试中的重要性不言而喻 那么
  • 2024拒绝行业内卷!八年软件测试20K*16薪行业心得 想入行必看

    目前工作做软件测试工作8年 属于高级测试员那个级别吧 现在看到各行各业的人都在转行学习软件测试 想给大家一些学习建议和忠告 很多粉丝都跟我说今年行情很差 找不到工资 真的找不到工作了吗 我们常在网上看到的 程序员饱和 程序员过剩 其实一般是
  • (2024最新整理)Java最全八股文及答案!

    Java的特点 Java是一门面向对象的编程语言 面向对象和面向过程的区别参考下一个问题 Java具有平台独立性和移植性 Java有一句口号 Write once run anywhere 一次编写 到处运行 这也是Java的魅力所在 而实
  • 面试官:分库分表后如何生成全局ID?

    分库分表后就不能使用自增 ID 来作为表的主键了 因为数据库自增 ID 只适用于单机环境 但如果是分布式环境 是将数据库进行分库 分表或数据库分片等操作时 那么数据库自增 ID 就会生成重复 ID 从而导致业务查询上的问题 所以此时 可以使
  • 软件测试/测试开发/全日制/测试管理丨Android WebView 技术原理

    Android WebView是一个内置的组件 允许在Android应用中嵌套显示Web内容 Android WebView的技术原理涉及到使用WebKit引擎来渲染Web内容 并提供一系列API和回调函数 使得开发人员可以控制和定制Web
  • 一文让你了解UI自动化测试

    测试都起什么作用 是项目的保险 但不是项目的救命草 测试无实际产出 但作用远大于实际产出 测试是从项目维度保证质量 而不是测试阶段 UI自动化 下面简称自动化 基于UI进行自动功能测试 以Web端作为例子 一般的UI功能自动化都是基于HTM
  • 外包干了2个月,技术倒退2年。。。

    先说一下自己的情况 本科生 20年通过校招进入深圳某软件公司 干了接近4年的 功能测试 今年国庆 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了3年的女朋
  • 为什么我强烈推荐大学生打CTF!

    前言 写这个文章是因为我很多粉丝都是学生 经常有人问 感觉大一第一个学期忙忙碌碌的过去了 啥都会一点 但是自己很难系统的学习到整个知识体系 很迷茫 想知道要如何高效学习 这篇文章我主要就围绕两点 减少那些罗里吧嗦的废话 直接上干货 CTF如
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • 2024最强Java面试八股文合集(持续更新)

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基
  • 【学习分享】全志平台TWI子系统源码分析(1)从设备树到寄存器

    全志平台TWI子系统源码分析 1 从设备树到寄存器 前言 一 名词解释 二 从设备树入手看源码 1 TWI设备树 2 TWI源码位置 3 TWI总线相关寄存器 总结 前言 这次开坑主要是想把全志平台TWI子系统在源

随机推荐

  • 需要将Ghostscript安装到Mac PATH

    Camelot 出现错误 未安装 Ghostscript 尝试了一切 问题是它没有添加到路径中 gs安装在机器上 Camelot 安装页面的以下检查失败https camelot py readthedocs io en master us
  • 如何在Python中打印不带空格的变量字符串(最少的编码!)[重复]

    这个问题在这里已经有答案了 我有类似的东西 print n id var1 var2 var3 var4 它为每个变量打印空格 1 john h johnny mba 我想要这样的东西 1 john h johnny mba 我有 20 个
  • XML 架构导致 xml 元素没有命名空间

    我在一个非常简单的模式上遇到了一些麻烦 在架构指定的 xml 正文中 根元素的第一个子元素被指定为具有 xmlns 这给我带来了验证问题 我反复搜索并尝试找出发生这种情况的原因 但没有取得任何成功 这对我的服务器代码造成了更大的问题 因为我
  • Hibernate 映射异常无法确定以下类型:java.nio.file.Path

    我有一张实体照片如下 Entity class Photo Path imagePath public Path getImagePath return imagePath setter 在这个实体中 我必须 nio Path 我怎样才能解
  • 向 ggplot 添加自定义颜色

    我的主要目标是在我的情节中对元素进行不同的着色 为此 我manually添加了一个额外的列 其中每个列都有所需的颜色category mtcars color mtcars carb 4 F98866 mtcars color mtcars
  • BigQuery 删除表列 - DDL 错误

    通过以下方式从表中删除列后 ALTER TABLE MyTable DROP COLUMN IF EXISTS MyColumn 在 BigQuery UI 中 我可以看到该列已成功删除 并且无法查询特定列 但是当我查询 DDL 时 我可以
  • Excel - 从一列中返回多个匹配值,水平排列在一行中

    我有一个 Excel 公式 它应该可以工作 但返回 VALUE 我不明白为什么 我有这张表 A B 1 2 Oranges 1 3 Apples 2 4 Grapes 3 5 Oranges 4 6 Apples 5 7 Grapes 6
  • Windows Azure - 在网站和虚拟机之间进行通信,无需启用外部/远程访问

    我是 Azure 新手 已经设置了一个 Asure 网站 该网站将连接到 Azure VM 上的 SOLR 实例 除非我创建端点 否则该网站无法与 SOLR 端口 8080 通信 为了创建一个端点 我需要提供一个内部和external端口
  • 如何在 JavaScript 中存储字节数组

    我将在 Javascript 中存储大量字节值 很可能超过一百万 如果我使用带有普通数字的普通数组 则需要 8 MB 因为数字存储为 IEEE 双精度数 但如果我可以将其存储为字节 则只需 1 MB 由于显而易见的原因 我想避免浪费那么多空
  • 使用任意位数的小数位格式化 SQL 数字查询结果

    我有一个包含这两列的数据库表 金额 数字 18 0 小数位数 数字 18 0 该表可以存储各种货币的金额 并从金额中删除小数位 我无法更改此数据模型 例如 可能有这样的两行 1290 2 这是 12 90 英镑 需要显示为 12 90 34
  • 比较两个不同图像的像素,花费的时间太长

    我想比较两个不同图像的像素 我正在将第一张图像的像素与第二张图像的所有像素进行比较 这是我的代码 for int i 0 i lt bitmap getWidth i for int j 0 j lt bitmap getHeight j
  • CMake 和 Boost

    我查了一下 发现很多人都有同样的问题 但没有解决办法 我正在使用 CMake 为 MinGW 生成 Makefile 编译时出现错误 CMakeFiles boosttest dir objects a main cpp obj main
  • Android Cipher 加密/解密

    我正在使用密码来加密和解密消息 public String encrypt String string throws InvalidKeyException IllegalBlockSizeException BadPaddingExcep
  • 让WSL开机启动

  • 大普微电子2024届秋招/校招内推信息/内推码

    公司名称 大普微电子 内推码 NTAX3Ws 内推来源 内推鸭小程序 2000 企业内推人发布内推码 官方招聘网站 https app mokahr com social recruitment dapustor 54045
  • 网龙2024届秋招/校招内推信息/内推码

    公司名称 网龙 内推码 EVBMJ3 内推来源 内推鸭小程序 官方招聘网站 网龙网络公司内推
  • 计算机SSM毕设选题 公寓宿舍后勤管理系统(含源码+论文)(1)

    文章目录 1 项目简介 2 实现效果 2 1 界面展示 3 设计方案 3 1 概述 3 2 系统流程 3 2 1 系统开发流程
  • 华为OD机试真题-提取字符串中的最长数学表达式并计算-2023年OD统一考试(C卷)

    题目描述 提取字符串中的最长合法简单数学表达式 字符串长度最长的 并计算表达式的值 如果没有 则返回0 简单数学表达式只能包含以下内容 0 9数字 符号 说明 1 所有数字 计算结果都不超过long 2 如果有多个长度一样的 请返回第一个表
  • 不会做的题汇总

    摘苹果 题目描述 小红来到苹果园 帮园长摘苹果 园长请小红把摘完的苹果的最小的那个去掉 如果有 多个最小的苹果 那么都要去掉 剩余的苹果算一下平均一个苹果有多重 平均重 量请保留1位小数 输入 输入有2行 第一行 一个整数n代表小红摘的n个
  • ChatGPT与接口测试

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 3k次 点赞60次 收藏8次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自动