当前位置: 首页 > news >正文

项目总结之常问的一些问题

1.项目功能介绍,重难点

重难点:

  • mock工具使用(涉及到的三方接口过多,由于网络等原因无法调通,所以测试的时候,采用mock工具来模拟返回接口真正调用后响应数据)

2.项目负责哪部分?如何测试?测试用例如何设计的?如何保证测试用例没有遗漏?业务流程是怎么样?

3.负责项目的架构?
三个子系统,web、app、后台

4.数据库经常使用吗?
数据库使用,有两种情况,第一种情况,验证测试结果的正确,通过页面操作,查看落库是否正确;第二种情况,造测试数据,验证某些场景的时候,需要初始化或者删除数据,需要修改数据库。

5.印象最深刻的bug?

6.mock工具使用?

  • 使用场景:三方接口调不通
  • 使用步骤:
  • (1)下载moco的jar包,并且确保自己电脑上已经配置了正确的java环境;
  • (2)创建json文件,文件中按照json文件格式,编写要请求的数据,url、接口请求方式、参数(form、json数据)、响应结果、请求头等;
  • (3)将json文件和jar包存在同一目录下;
  • (4)cmd上启动脚本 java -jar mock的jar包 http -p 端口号 -c json文件
  • (5)通过jemter或者浏览器或postman进行访问。

7.linux考察:常用命令

  • 查看包含Error的日志 grep “Error” test.log
  • 查看包含Error的日志以及它的后10行:grep -A 10 “Error” test.log
  • 查看昨天的包含login的接口的日志:cat test.log |grep “昨天日期” |grep “login”
  • 查看端口号 netstat -anp|grep 8080
  • 查看进程 ps -ef|grep tomcat
  • 查看ip ip addr
  • 根目录下查找a.log文件 find / -name a.log
  • 文件设置权限 chmod 777 text.txt
  • 查看内存使用 free -m
  • 查看磁盘使用 df -h

8.接口自动化怎么做的?(目录,参数化,参数驱动,断言,三方数据返回处理,session管理cookie、log)

  • 难点:处理三方接口返回的数据:三方接口请求的url和参数都来源于后端接口返回的结果,返回的结果是html格式,需要从html提取数据。所有的请求参数都在input标签中,name属性值为参数名,value属性值为参数值。
  • 提取html内容:通过一个beautifulsoup4,进行处理的。
# 提取html
def html_parser(result):# 1、提取htmlhtml = result.json().get("description").get("form")# 2、获取bs对象bs = BeautifulSoup(html, "html.parser")# 3、提取urlurl = bs.form.get("action")print("提取的三方url为:", url)data = {}# 4、提取所有input数据for input in bs.find_all("input"):data[input.get("name")] = input.get("value")return url, data
参数化:
parametrize关键字(@pytest.mark.parametrize("x1,x2,except",data))要求传的数据格式为[(),{}]
数据驱动:json文件构造测试数据({})字典格式
数据格式:x1,x2,expect,响应数据
(1)要将json文件中的数据处理为参数化需要的[()huo{}]格式
先获取json文件路径,拿到文件,定义一个空列表,之后读取json文件内容,
json文件中内容都是以键值对的形式存储的,遍历每一个键,将值存储到空列表中
(提取出来的value值是一个列表,将其处理为tuple)
def read_json(filename, key):filepath = DIR_PATH + os.sep + "data" + os.sep + filenamearrs = []with open(filepath, "r", encoding="utf-8")as f:for data in json.load(f).get(key):arrs.append(tuple(data.values())[1:])#切片,只要将列表位置1后面的元素添加到arr里面,1位置是描述信息return arrs
日志:
接口自动化中通过代码设置日志的级别,debug级别(级别最高)或者info级别的,
低于设置的日志级别的日志都会进行打印。
怎么调用的?
在自动化代码Tool.py中对获取日志的内容、参数、输出日志格式、日志文件路径封装成一个方法,
在网上搜的这串代码,封装好之后,在测试用例脚本中进行调用,
通过log.info("登录接口测试结果为:{}".format(result.text))进行调用。

9.保证接口自动化测试脚本的稳定性?

  • 按顺序执行
  • 清除数据

10.jemter使用?断言怎么写的?

(1)python代码中最简单的断言:assert 200==resp.status_code
(2)jemter中设置断言,加一个响应断言,可以设置断言的字段(响应文本、
响应代码、响应头、响应信息),匹配模式选择包含、相等、字符串等。
(3)UI自动化代码中设置断言的方式:

11.数据库工具封装的使用场景都有哪些?怎么封装的?

将增删改查的常用操作用python代码进行封装,写成一个类方法,
比如测试一个项目需要造数据或者清除数据的时候,只需要提供对应的sql语句,
就可以进行调用。以及在数据库插入大量数据的时候,也可以使用该代码。流程:
(1)导包import pymysql
(2)创建连接conn=pymysql.connect()
(3)创建游标conn.cursor()
(4)根据传入sql,分辨是增删改操作还是查看操作:
增删改操作:执行sql,pymysql.excute(sql),执行成功则提交commit,
失败则进行回滚操作rollback,并将异常错误进行打印
查询操作:
查询单条数据还是多条数据,fentchone或者fetchmany方法进行提取结果集

相关文章:

项目总结之常问的一些问题

1.项目功能介绍,重难点 重难点: mock工具使用(涉及到的三方接口过多,由于网络等原因无法调通,所以测试的时候,采用mock工具来模拟返回接口真正调用后响应数据) 2.项目负责哪部分?…...

51单片机实现精确定时

一、51单片机代码 #include <reg52.h>sbit LED P3^3;extern bit b10Ms; extern bit b100Ms; extern bit b1S; extern bit b10S;void Timer0_Init() {TMOD | 0x01; // 设置定时器0为模式1TH0 (65536 - 1000) / 256; // 高8位赋初值TL0 (65536 - 1000) % 256; // 低8位…...

记一次不太顺利的Docker重装

#记录工作 一、前言 默认情况下&#xff0c;Windows系统上Docker Desktop 安装在 &#xff1a;C:\Program Files\Docker\Docker&#xff1b; 目前正常下载能下载到最新版本是到v4.39.0&#xff0c;实际已经能找到v4.40.0版本来进行修复安装&#xff1b; 建议尽量不要改变Doc…...

【计网】TCP 协议详解 与 常见面试题

三次握手、四次挥手的常见面试题 不用死记&#xff0c;只需要清楚三次握手&#xff0c;四次挥手的流程&#xff0c;回答的时候心里要记住&#xff0c;假设网络是不可靠的 问题(1)&#xff1a;为什么关闭连接时需要四次挥手&#xff0c;而建立连接却只要三次握手&#xff1f; 关…...

Docker介绍

Docker介绍 Docker 本身并不是容器&#xff0c;而是一个使用容器的工具。容器是 Linux 内核提供的技术&#xff0c;Docker 只是将这种技术的使用简便化了。Docker 的主要目标是 “Build,Ship and Run Any APP,Anywhere”&#xff08;“一次封装&#xff0c;到处运行”&#xf…...

大模型推理--Qwen2.5-Omni在A100上的初体验

过去的一周Qwen2.5-Omni产生了很高的热度&#xff0c;吸引了很多人的目光。它的多模态确实很吸引人&#xff0c;放出来的demo体验还算尚可&#xff08;语音对话的延迟还是太大&#xff09;&#xff0c;所以就在A100 PCIe上实地部署了一下&#xff0c;初步对其速度进行了测试&am…...

二分查找例题

本篇基于b站灵茶山艾府。 34. 在排序数组中查找元素的第一个和最后一个位置 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你…...

新增一种线性回归的增量学习框架,已更新31个模型!Matlab回归预测大合集又更新啦!

目录 效果图基本介绍程序设计参考资料 效果图 基本介绍 一种线性回归的增量学习框架&#xff0c;程序研究的主要内容是线性回归模型的增量学习实现及其在房价预测中的应用&#xff0c;旨在通过分块处理数据逐步更新模型&#xff0c;以适应动态数据环境并减少计算资源消耗。 详…...

P1025 [NOIP 2001 提高组] 数的划分(DFS)

题目描述 将整数 n 分成 k 份&#xff0c;且每份不能为空&#xff0c;任意两个方案不相同&#xff08;不考虑顺序&#xff09;。 例如&#xff1a;n7&#xff0c;k3&#xff0c;下面三种分法被认为是相同的。 1,1,5; 1,5,1; 5,1,1. 问有多少种不同的分法。 输入格式 n,k …...

SQL Server存储过程和触发器的使用

存储过程 &#xff08;1&#xff09;创建存储过程&#xff0c;使用Employees表中的员工人数来初始化一个局部变量&#xff0c;并调用这个存储过程。 1. Create PROCEDURE test number1 int output --输出参数&#xff0c;可以从程序中返回信息 2. As 3. begin 4. D…...

Elastic 的 OpenTelemetry 分发版(EDOT)现已正式发布:开源、可用于生产环境的 OTel

作者&#xff1a;来自 Elastic Miguel Luna 及 Bahubali Shetti Elastic 自豪地宣布正式发布 Elastic OpenTelemetry 分发版&#xff08;Elastic Distributions of OpenTelemetry - EDOT&#xff09;&#xff0c;其中包含 Elastic 自定义版本的 OpenTelemetry Collector 以及多…...

springMVC-Json交互处理

什么是JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式&#xff0c;目前使用特别广泛。 采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写&#xff0c;同时也…...

MySQL中的索引

explain关键字&#xff0c; MySQL索引特性 索引的概念 MySQL 索引是一种用于提高数据库查询效率的数据结构 数据库表中存储的数据都是以记录为单位的&#xff0c;如果在查询数据时直接一条条遍历表中的数据记录&#xff0c;那么查询的时间复杂度将会是 O ( N )。索引的价值在…...

AI小白:JavaPython开发环境双轨制搭建指南

文章目录 1 Python深度学习环境配置1.1 Anaconda生态体系建设1.2 JupyterLab高效工作流魔法命令与可视化调试扩展插件配置指南 2 Java深度学习方案&#xff1a;DL4J实战2.1 企业级部署架构设计2.2 集成传统Java系统Spring Boot微服务封装模型性能优化技巧 1 Python深度学习环境…...

《比特城的机密邮件:加密、签名与防篡改的守护之战》

点击下面图片带您领略全新的嵌入式学习路线 &#x1f525;爆款热榜 88万阅读 1.6万收藏 第一章&#xff1a;风暴前的密令 比特城的议会大厅内&#xff0c;首席长老艾德文握着一卷足有半人高的羊皮纸&#xff0c;眉头紧锁。纸上是即将颁布的《新纪元法典》——这份文件不仅内…...

Redis之布隆过滤器

面试场景切入 针对于电话号码问题的痛点 布隆过滤器是什么&#xff1f; 由一个初值都为0的bit数组和多个哈希函数构成&#xff0c;用来快速判断集合中是否存在某个元素。 设计思想 本质就是判断具体数据是否存在于一个大的集合中。布隆过滤器是一种类似Set的数据结构&#…...

这是一份简单优雅的Prompt Engineering教程

Prompt Engineering&#xff08;提示工程&#xff09;是通过精心设计输入文本&#xff08;prompt&#xff09;来引导大型语言模型&#xff08;LLM&#xff09;生成更准确、相关且符合预期的输出的技术。其核心在于通过调整提问的措辞、结构、上下文和附加信息&#xff0c;优化模…...

Java基础 4.6

1.成员方法练习 //编写类A&#xff1a;判断一个数是奇数还是偶数&#xff0c;返回boolean //根据行、列、字符打印对应行数和列数的字符&#xff0c;比如&#xff1a;行4 列4 字符# 则打印相应的效果 public class MethodExercise01 {public static void main(String[] args) …...

DApp实战篇:前端技术栈一览

前言 在前面一系列内容中&#xff0c;我们由浅入深地了解了DApp的组成&#xff0c;从本小节开始我将带领大家如何完成一个完整的DApp。 本小节则先从前端开始。 前端技术栈 在前端开发者速入&#xff1a;DApp中的前端要干些什么&#xff1f;文中我说过&#xff0c;即便是在…...

C++中如何比较两个字符串的大小--compare()函数实现

一、现在有一个问题描述&#xff1a;有两个字符串&#xff0c;要按照字典顺序比较它们的大小&#xff08;注意所有的小写字母都大于所有的大写字母 &#xff09;。 二、代码 #include <bits/stdc.h> using namespace std;int main() {string str1 "apple";…...

c++中的auto关键字

在 C 中&#xff0c;auto 是一个类型推断关键字&#xff08;C11 引入&#xff09;&#xff0c;允许编译器根据变量的初始化表达式自动推导其类型。它极大地简化了代码编写&#xff0c;尤其在涉及复杂类型或模板的场景中。以下是 auto 的详细说明&#xff1a; 1. 基本用法 1.1 …...

zk源码—1.数据节点与Watcher机制及权限二

大纲 1.ZooKeeper的数据模型、节点类型与应用 (1)数据模型之树形结构 (2)节点类型与特性(持久 临时 顺序 ) (3)节点的状态结构(各种zxid 各种version) (4)节点的版本(version cversion aversion) (5)使用ZooKeeper实现锁(悲观锁 乐观锁) 2.发布订阅模式&#xff1…...

交换机和集线器的区别

集线器&#xff08;Hub&#xff09;—— 大喇叭广播站​​ ​​工作原理​​&#xff1a; 集线器像村里的“大喇叭”&#xff0c;收到任何消息都会​​广播给所有人​​。 比如A对B说“你好”&#xff0c;全村人&#xff08;C、D、E&#xff09;都能听到&#xff0c;但只有B会回…...

微服务系统记录

记录下曾经工作涉及到微服务的相关知识。 1. 架构设计与服务划分 关键内容 领域驱动设计&#xff08;DDD&#xff09;&#xff1a; 利用领域模型和限界上下文&#xff08;Bounded Context&#xff09;拆分业务&#xff0c;明确服务边界。通过事件风暴&#xff08;Event Storm…...

同花顺客户端公司财报抓取分析

目标客户端下载地址:https://ft.51ifind.com/index.php?c=index&a=download PC版本 主要难点在登陆,获取token中的 jgbsessid (每次重新登录这个字段都会立即失效,且有效期应该是15天的) 抓取jgbsessid 主要通过安装mitmproxy 使用 mitmdump + 下边的脚本实现监听接口…...

二叉树与红黑树核心知识点及面试重点

二叉树与红黑树核心知识点及面试重点 一、二叉树 (Binary Tree) 1. 基础概念 定义&#xff1a;每个节点最多有两个子节点&#xff08;左子节点和右子节点&#xff09; 术语&#xff1a; 根节点&#xff1a;最顶层的节点 叶子节点&#xff1a;没有子节点的节点 深度&#xf…...

Rocket-JWT鉴权

目录 一、概述 二、相关依赖 三、环境准备 3.1 创建项目 3.2 读取私钥信息 3.3 token数据负载 3.4 生成token 四、Web鉴权 4.1 验证载体 4.2 接收请求 五、总结 Welcome to Code Blocks blog 本篇文章主要介绍了 [Rocket-JWT鉴权] ❤博主广交技术好友&#xff0c;喜…...

2025 年网络安全终极指南

我们生活在一个科技已成为日常生活不可分割的一部分的时代。对数字世界的依赖性日益增强的也带来了更大的网络风险。 网络安全并不是IT专家的专属特权&#xff0c;而是所有用户的共同责任。通过简单的行动&#xff0c;我们可以保护我们的数据、隐私和财务&#xff0c;降低成为…...

横扫SQL面试——PV、UV问题

&#x1f4ca; 横扫SQL面试&#xff1a;UV/PV问题 &#x1f31f; 什么是UV/PV&#xff1f; 在数据领域&#xff0c;UV&#xff08;Unique Visitor&#xff0c;独立访客&#xff09; 和 PV&#xff08;Page View&#xff0c;页面访问量&#xff09; 是最基础也最重要的指标&…...

ctf-show-杂项签到题

下载文件&#xff0c;解压需要密码&#xff0c;用010打开没看出什么 然后用Advanced Archive Password Recovery暴力破解&#xff0c;发现没用 怀疑是伪解密&#xff0c;解压出来发现加密受损用随波逐流修复加密文件 打开修复的加密文件直接得flag flag&#xff1a;flag{79d…...

对解释器模式的理解

对解释器模式的理解 一、场景1、题目【[来源](https://kamacoder.com/problempage.php?pid1096)】1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 二、不采用解释器模式1、代码2、“缺点” 三、采用解释器模式1、代码2、“优点” 四、思考1、解释器模式的意义…...

高频面试题(含笔试高频算法整理)基本总结回顾64

干货分享&#xff0c;感谢您的阅读&#xff01; &#xff08;暂存篇---后续会删除&#xff0c;完整版和持续更新见高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09;&#xff09; 备注&#xff1a;引用请标注出处&#xff0c;同时存在的问题请在相关博客留言…...

python入门之从安装python及vscode开始

本篇将解决三个问题&#xff1a; 1. 如何下载及安装官方python&#xff1f; 2. 如何下载及安装vscode&#xff1f; 3. 如何配置vscode的python环境&#xff1f; 一、python下载及安装 1.搜索python&#xff0c;找到官网并打开 2.找到download&#xff0c;按需选择版本下载 …...

OpenGL学习笔记(模型材质、光照贴图)

目录 光照与材质光照贴图漫反射贴图采样镜面光贴图 GitHub主页&#xff1a;https://github.com/sdpyy OpenGL学习仓库:https://github.com/sdpyy1/CppLearn/tree/main/OpenGLtree/main/OpenGL):https://github.com/sdpyy1/CppLearn/tree/main/OpenGL 光照与材质 在现实世界里&…...

视觉_transform

visual_transform 图像分块 (Patch Embedding) 假设输入图像为 x ∈ R ∗ H ∗ ∗ W ∗ ∗ C ∗ x∈R^{*H**W**C*} x∈R∗H∗∗W∗∗C∗ C 是图像的通道数&#xff08;例如&#xff0c;RGB图像的 C3&#xff09; 将图像分割成N个大小为P*CP的patch&#xff0c;每个patch的大…...

Redis的安装及通用命令

二. Redis 的安装及通用命令 1. Ubuntu 安装 Redis (1) 切换到 root 用户: su root(2) 搜索 Redis 软件包 apt search redis(3) 安装 Redis apt install redis(4) 查看 Redis netstat -anp | grep redis(5) 切换到 Redis 目录下 cd /etc/redis/(6) 修改 Redis 配置文件:…...

Python 实现的运筹优化系统代码详解(0-1规划背包问题)

一、引言 在数学建模与实际决策场景的交织领域中&#xff0c;诸多复杂问题亟待高效且精准的解决方案。0-1 规划作为一种特殊且极为重要的优化方法&#xff0c;宛如一把万能钥匙&#xff0c;能够巧妙开启众多棘手问题的解决之门。它专注于处理决策变量仅能取 0 或 1 这两种极端状…...

护网蓝初面试题

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…...

音视频学习(三十二):VP8和VP9

VP8 简介 全称&#xff1a;Video Processing 8发布者&#xff1a;原 On2 Technologies&#xff08;2010 被 Google 收购&#xff09;定位&#xff1a;开源视频压缩标准&#xff0c;主要竞争对手是 H.264应用&#xff1a; WebRTC 视频通信HTML5 <video> 标签&#xff08…...

美国mlb与韩国mlb的关系·棒球9号位

MLB&#xff08;Major League Baseball&#xff0c;美国职业棒球大联盟&#xff09;作为全球最高水平的职业棒球联赛&#xff0c;与韩国市场流行的“MLB”时尚品牌之间存在着授权合作关系&#xff0c;但两者在业务范畴和品牌定位上存在显著差异。 一、品牌授权背景&#xff1a;…...

免费在线PUA测试工具:识别情感操控,守护情感健康

免费在线PUA测试工具&#xff1a;识别情感操控&#xff0c;守护情感健康 你是否曾经在感情中感到困惑、不安&#xff0c;甚至怀疑自己&#xff1f;今天为大家推荐一个专业的PUA测试工具&#xff0c;帮助你识别是否正在经历情感操控。 测试工具链接&#xff1a;PUA测试工具 什么…...

nginx中的try_files指令

try_files 是 Nginx 中一个非常有用的指令&#xff0c;用于按顺序检查文件是否存在&#xff0c;并返回第一个找到的文件。如果所有指定的文件都不存在&#xff0c;则执行回退逻辑&#xff0c;如重定向到一个指定的 URI 或返回一个错误代码。 作用 文件查找&#xff1a;按顺序检…...

[特殊字符] 驱动开发硬核特训 · Day 4

主题&#xff1a;从硬件总线到驱动控制 —— I2C 协议与传感器驱动开发全解析 I2C&#xff08;Inter-Integrated Circuit&#xff09;总线是一种广泛用于嵌入式设备的串行通信协议&#xff0c;因其低成本、简单布线和多从设备支持&#xff0c;成为连接各种传感器&#xff08;温…...

Python 实现玻璃期货数据处理、入库与分析:从代码到应用

Python 实现期货数据处理与分析&#xff1a;从代码到应用 引言 在金融市场中&#xff0c;期货数据的处理和分析对于投资者和分析师来说至关重要。Python 凭借其丰富的库和简洁的语法&#xff0c;成为了处理和分析期货数据的强大工具。本文将详细解读一段用于处理期货持仓和行…...

神经网络之损失函数

引言&#xff1a;损失函数 &#xff08;Loss Function&#xff09;是机器学习和深度学习中非常重要的一个概念。用于衡量模型的预测值与真实值之间的差异&#xff0c;从而指导模型优化其参数以最小化这种差异。 一、损失函数作用 量化误差&#xff1a;损失函数是将预测值和真实…...

在Ubuntu内网环境中为Gogs配置HTTPS访问(通过Apache反向代理使用IP地址)

一、准备工作 确保已安装Gogs并运行在HTTP模式(默认端口3000) 确认服务器内网IP地址(如192.168.1.100) 二、安装Apache和必要模块 sudo apt update sudo apt install apache2 -y sudo a2enmod ssl proxy proxy_http rewrite headers 三、创建SSL证书 1. 创建证书存储目录…...

printf

printf() 是 C 和 C 标准库中的一个输出函数&#xff0c;位于 <cstdio> 头文件中。下面为你详细介绍它的相关知识点。 1. 基本使用 printf() 函数的作用是按照指定格式将数据输出到标准输出设备&#xff08;通常是控制台&#xff09;。其基本语法如下&#xff1a; cpp …...

Leetcode 311 Sparse Matrix Multiplication 稀疏矩阵相乘

Problem Given two sparse matrices A and B, return the result of AB. You may assume that A’s column number is equal to B’s row number. Example: A [[ 1, 0, 0],[-1, 0, 3] ]B [[ 7, 0, 0 ],[ 0, 0, 0 ],[ 0, 0, 1 ] ]| 1 0 0 | | 7 0 0 | | 7 0 0 | AB …...

mysql和sqlite关于data数据的识别问题

<input type"date" name"birthday" value""> # 表单传入的日期 birthday request.form.get(birthday) # 获取日期 birthday Column(birthday, Date, comment出生日期, nullableTrue) # 数据库的数据字段模型 birthday_str request…...

2024 天梯赛——工业园区建设题解

思路 将点 i i i 视为固定点&#xff0c; 点 j j j 视为灵活点&#xff0c;其中 s i 1 s_{i} 1 si​1&#xff0c; s j 0 s_{j} 0 sj​0。维护四个队列&#xff0c;其中 q 0 q_{0} q0​ 和 q 1 q_{1} q1​ 分别维护还没有被选用的固定点 和 灵活点&#xff0c; Q 0 Q…...