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

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

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.项目负责哪部分?…...

C语言查漏补缺:占位符篇

占位符篇 1. 整数类型2. 字符类型3. 浮点数类型4. 指针类型5. 字符串6. 修饰符 1. 整数类型 %d / %i:用于 int(有符号十进制整数)。int num -42; printf("%d", num); // 输出: -42%u:用于 unsigned int(无…...

cut命令用法

cut 是 Linux/Unix 系统中一个用于按列提取文本内容的命令,常用于处理结构化文本(如 CSV、日志、配置文件等)。它通过分隔符、字符位置或字节位置来切割文本,提取指定部分。 核心功能 按字段(列)提取&#…...

java 正则表达式优化

1,什么是正则表达式 正则表达式使用一些特定的元字符来检索、匹配以及替换符合规则的字符串。 构造正则表达式语法的元字符,由普通字符、标准字符、限定字符(量词)、定位字符(边界字符)组成 普通字符 字母[…...

AD(Altium Designer)更换PCB文件的器件封装

一、确定是否拥有想换的器件PCB封装 1.1 打开现有的原理图 1.2 确定是否拥有想换的器件PCB文件 1.2.1 如果有 按照1.3进行切换器件PCB封装 1.2.2 如果没有 按照如下链接进行添加 AD(Altium Designer)已有封装库的基础上添加器件封装-CSDN博客https://blog.csdn.net/XU15…...

【文献研究】含硼钢中BN表面偏析对可镀性的影响

《B 添加钢的溶融 Zn めっき性に及ぼす BN 表面析出の影響》由JFE公司田原大輔等人撰写。研究聚焦 B 添加钢在低露点退火时 BN 形成对镀锌性的影响,对汽车用高强度钢镀锌工艺优化意义重大。通过多组对比实验,结合多种分析手段,明确了相关因素…...

React学习-css

W3Schools Tryit Editor CSS 教程 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: p { /* 这是个注释 */ color:red; text-align:center; }选择器 CSS Id: #para1{ text-align:center; color:red; } Class: .center {text-align:center;} p…...

AIP-215 API特定proto

编号215原文链接AIP-215: API-specific protos状态批准创建日期2018-10-01更新日期2018-10-01 API通常使用API特定proto定义,偶尔依赖通用组件。保持API相互隔离可以避免版本问题和客户端库打包问题。 指南 所有特定于某个API的protos 必须 位于带有主版本号的包…...

C++ 获取一整行(一行)字符串并转换为数字

代码很简单&#xff0c;主要是自己总是忘记&#xff0c;记录一下&#xff1a; #include <iostream> #include <cstdlib> #include <cstring>#include <string> #include <vector> #include <sstream>using namespace std;void print_int_…...

数据分析-Excel-学习笔记Day1

Day1 复现报表聚合函数&#xff1a;日期联动快速定位区域SUMIF函数SUMIFS函数环比、同比计算IFERROR函数混合引用单元格格式总结汇报 拿到一个Excel表格&#xff0c;首先要看这个表格的构成&#xff08;包含了哪些数据&#xff09;&#xff0c;几行几列&#xff0c;每一列的名称…...

树莓派PICO 设备烧录成cmsis dap

文章目录 1. 实际操作2. IO连接 1. 实际操作 2. IO连接...

【数据结构】图的存储

目录 邻接矩阵 表示方法 代码定义 结构特点与度的信息 邻接表 表示方法 代码定义 结构特点与度的信息 十字链表 表示方法 第二步&#xff0c;将顶点x的firstIn域与所有headvex域为x的弧连起来。 结构特点与度的信息 邻接多重表 表示方法 结构特点与度的信息 图…...

如何解决uniapp打包安卓只出现功能栏而无数据的问题

如何解决uniapp打包安卓只出现功能栏而无数据的问题 经验来自&#xff1a;关于Vue3中调试APP触发异常&#xff1a;exception:white screen cause create instanceContext failed,check js stack -> at useStore (app-service.js:2309:15)解决方案 - 甲辰哥来帮你算命 - 博客…...

kotlin,数字滚动选择

用国内的通义灵码和codegeex都没有弄出来&#xff0c;最后只得用墙外的chatgpt才弄出一个满意的。kotlin真的有点难&#xff0c;好在有AI&#xff0c;让学习没这难了。 package com.example.mynumsetimport android.os.Bundle import androidx.activity.ComponentActivity imp…...

【4】搭建k8s集群系列(二进制部署)之安装master节点组件(kube-apiserver)

一、下载k8s二进制文件 下载地址&#xff1a; https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG -1.20.md 注&#xff1a;打开链接你会发现里面有很多包&#xff0c;下载一个 server 包就够了&#xff0c;包含了 Master 和 Worker Node 二进制文件。…...

每日c/c++题 备战蓝桥杯(小球反弹)[镜像思路求解,最小公倍数]

思路&#xff1a; 错解&#xff1a;对于这道题而言&#xff0c;有的同学会选择用计算每次碰撞的坐标&#xff0c;直到坐标等于原点的方法来做&#xff0c;但这种方法实现起来比较繁琐&#xff0c;并且由于碰撞点的坐标有可能是浮点数&#xff0c;而浮点数会丢失精度&#xff0…...

新潮透明液体水珠水滴失真故障扭曲折射特效海报字体标题设计ps样机动作素材 Bubble Photoshop Templates

只需单击几下即可创建引人注目的视觉效果&#xff01;您需要做的就是将您的文本或图像放入智能对象中并应用作。 包中包含&#xff1a; 15 个静态 Photoshop 模板&#xff08;PS 2019 及更高版本&#xff09; 01-05 垂直布局 &#xff08;22504000&#xff09;06-10 水平布局…...

谷歌洽谈租赁英伟达AI服务器:算力争夺战再升级

近日&#xff0c;全球科技巨头谷歌被曝正与英伟达&#xff08;NVIDIA&#xff09;洽谈租赁AI服务器&#xff0c;这一动态引发了行业广泛关注。若合作达成&#xff0c;谷歌将借助英伟达的高性能GPU进一步强化其AI算力储备&#xff0c;同时也折射出当前AI竞赛中算力资源的战略重要…...

从零开始玩python--python版植物大战僵尸来袭

大家好呀&#xff0c;小伙伴们&#xff01;今天要给大家介绍一个超有趣的Python项目 - 用pygame制作植物大战僵尸游戏的进阶版本。相信不少小伙伴都玩过这款经典游戏&#xff0c;今天我们就用Python来实现它&#xff0c;让编程学习变得更加有趣&#xff01;&#x1f31f; 一、…...

深入理解MySQL:核心特性、优化与实践指南

MySQL是一个开源的关系型数据库管理系统(RDBMS)&#xff0c;由瑞典MySQL AB公司开发&#xff0c;目前属于Oracle公司。它是目前世界上最流行的开源数据库之一&#xff0c;广泛应用于各种规模的Web应用和企业系统中。 目录 一、核心特点 关系型数据库&#xff1a; 开源免费&am…...

Visual Studio Code SSH 连接超时对策( keep SSH alive)

文章目录 问题解决方法一&#xff1a;配置服务端关于ClientAliveInterval和ClientAliveCountMax1、打开终端&#xff0c;打开SSH配置文件&#xff1a;输入以下命令&#xff1a;2、打开配置文件后&#xff0c;添加以下内容&#xff1a;3、添加后&#xff0c;Esc按 <Enter>…...

【C语言入门】由浅入深学习指针 【第二期】

目录 1. 指针变量为什么要有类型&#xff1f; 2. 野指针 2.1 未初始化导致的野指针 2.2 指针越界导致的野指针 2.3 如何规避野指针 3. 指针运算 3.1 指针加减整数 3.2 指针减指针 3.3 指针的关系运算 4. 二级指针 5. 指针数组 5.1 如何使用指针数组模拟二维数组 上…...

关于Ubuntu系统的远程控制及文件传输

目录 1. 网络配置1.1 虚拟机Ubuntu网络配置1.2树莓派网络配置 2. 远程终端登录3. FTP文件传输4. 安装Xming和PuTTY5. 使用X11转发6. 安装和使用VNC思考题解答参考资料 1. 网络配置 1.1 虚拟机Ubuntu网络配置 将虚拟机的网络连接设置为“桥接模式”&#xff0c;这样虚拟机的网…...

IS-IS-单区域的配置

一、IS-IS的概念 IS-IS&#xff08;Intermediate System to Intermediate System&#xff0c;中间系统到中间系统&#xff09;是一种‌链路状态路由协议‌&#xff0c;最初设计用于‌OSI&#xff08;Open Systems Interconnection&#xff09;参考模型‌的网络层&#xff08;CL…...

Flask使用MySQL数据库通过Flask-SQLAlchemy 迁移数据库,实际更新文件,但是提示没有检测到数据更新。

本地写了一个model的用户类&#xff0c;数据库连接信息正确&#xff0c;执行下面2条命令进行数据库迁移。 flask db migrate 生成迁移文件 flask db upgrade 执行迁移文件的升级 发现执行完后&#xff1a;提示没有检测到数据的更新 PS C:\Users\mu> flask db migrate IN…...

React DndKit 实现类似slack 类别、频道拖动调整位置功能

一周调试终于实现了类 slack 类别、频道拖动调整位置功能。 历经四个版本迭代。 实现了类似slack 类别、频道拖动调整功能 从vue->react &#xff1b;更喜欢React的生态及编程风格&#xff0c;新项目用React来重构了。 1.zustand全局状态 2.DndKit 拖动 功能视频&…...

OpenCV 图形API(14)用于执行矩阵(或图像)与一个标量值的逐元素乘法操作函数mulC()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 描述 将矩阵与标量相乘。 mulC 函数将给定矩阵 src 的每个元素乘以一个给定的标量值&#xff1a; dst ( I ) saturate ( src1 ( I ) ⋅ multiplier ) \…...

flutter provider状态管理使用

在 Flutter 中&#xff0c;Provider 是一个轻量级且易于使用的状态管理工具&#xff0c;它基于 InheritedWidget&#xff0c;并提供了一种高效的方式来管理和共享应用中的状态。相比其他复杂的状态管理方案&#xff08;如 Bloc 或 Riverpod&#xff09;&#xff0c;Provider 更…...

1. 标准库的强依赖(核心原因)

1. 标准库的强依赖&#xff08;核心原因&#xff09; 容器操作&#xff08;如 std::vector 扩容&#xff09; 当标准库容器&#xff08;如 std::vector&#xff09;需要重新分配内存时&#xff0c;它会尝试移动现有元素到新内存&#xff0c;而非拷贝&#xff08;为了性能&…...

USB3.0走线注意事项和其中的协议

USB3.0走线的要求&#xff1a; 1、USB要走差分&#xff0c;阻抗控制为90欧姆&#xff0c;并包地处理&#xff0c;总长度最好不要超过1800mil. 2、尽可能缩短走线长度&#xff0c;优先考虑对高速USB差分&#xff08;RX、TX差分&#xff09;的布线&#xff0c;USB差分走线在走线…...