自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 收藏
  • 关注

原创 沪漂指南(租房版)

安居客现在算是很多人都在用的租房APP了,同样作为租房一党的我来说,也是在刚开始租房的时候下载过这个软件,但是说实话,没通过这个APP真正的找到过房子,就是看了房源,但是综合比较房源的质量,还是没选择这个APP上的,里面还是参杂挺多水分的。上海郊区:浦东区最大,价格差异大(注:浦东部分区域属于市区),宝山、嘉定、闵行 、青浦、松江是上海的郊区,租房价格比较亲民实惠,1800元以下,离市中心大概地铁一小时以内。(建议拿着上海地铁线路图对照着看)外国人比较多,比较安静,西式的餐厅多,适合文艺小资,价格偏贵。

2024-04-10 09:43:58 656

原创 四月软件测试面经合集(持续更新)

面经合集

2024-04-07 17:04:14 827

原创 python软件测试经典面试题

当时我们做的是一个金融管理系统,里边有个客户列表,当时按照测试用例去执行的时候,发现出现点击客户删除却无法删除,于是就提了一个单,但是开发后来发现删除客户没问题,又给我打回,后来我去查看服务器日志结合数据库,去进行定位,发现在出现删除异常操作的时候,没有输出日志。这时,又去尝试了一下删除其他人,发现可以删除,同时有日志的输出,抛开日志不谈,当时出现这个问题我第一想法就是是否是数据库里的某一列的参数加了外键,导致删除不了,

2024-04-07 10:31:41 854

原创 UI自动化框架搭建以及面试题详解(上)

是指把一个具体的页面转化为编程语言当中的一个对象,页面特性转化成对象属性,页面操作转化为对象方法。1)把每个页面当成一个对象,页面层写定位元素方法和页面操作方法2)用例层从页面层调用操作方法,写成用例3)可以做到定位元素与脚本的分离4)主要用来实现对页面操作和测试逻辑的一个分离。

2024-04-06 11:08:29 931

原创 UI自动化测试重点思考(下)--装饰器/生成器/夹具的使用/描述符的作用/ddt驱动/多线程

装饰器是一个函数A,函数A的传参是函数B,且函数A内部还有一个函数C,且函数A返回一个函数C,函数C是包含函数B的。1.只要是实现了yield关键字的函数都是一个生成器2.生成器的特点是,当调用者执行到yield就会卡住,然后把yield后面的参数返回给调用者3.当接收到next()函数的命令的时候才会执行yield关键字下面的代码描述符是实现了特定协议的类,它至少包含get()、set() 和delete() 中的一个方法。

2024-04-05 21:06:53 806

原创 UI自动化测试重点思考(中)--失败用例重跑/多句柄跳转/文件上传/定位难点

经常会遇到如登录功能,其中会出现一个中间的跳转页面,如果你的代码在执行完登录之后直接进行登录成功页面的操作的时候,必然会出现定位不到元素的问题,这时候隐式和显示等待都不起作用,主要原因就是新的页面还是出现,只能使用强制等待(time.sleep(5)),才能跳过中间页面,等登录成功页面刷新出来之后再进行定位即可。在大多数的情况下,在页面的源代码中只能找到一个input的元素,如果是在界面中可以直接看到这个元素时,当你想要上传文件的话,可以通过 selenium 的。方法切换到目标 frame。

2024-04-05 16:30:35 1029

原创 UI自动化测试重点思考(上)--元素定位/验证码/测试框架

序号方法名描述1通过 ID 属性定位单个元素2通过名称属性定位单个元素3通过 XPath 表达式定位单个元素4通过链接文本定位单个元素5通过部分链接文本定位单个元素6通过标签名称定位单个元素7通过类名定位单个元素8通过 CSS 选择器定位单个元素9通过 ID 属性定位多个元素10通过名称属性定位多个元素11通过 XPath 表达式定位多个元素12通过链接文本定位多个元素13通过部分链接文本定位多个元素14通过标签名称定位多个元素15。

2024-04-05 11:35:34 1149

原创 安全测试重点思考(下)--SQL注入漏洞处理/接口越权

对登录的密码框写一个 payload,看是否有sqlsyntax 的报错,或是直接绕过验证,登录成功,对接口中的参数写一个 payload 验证,以及搜索框中输入payload 查看送否有 sql syntax 的报错,或者直接查询出想要的数据,也可以在接口的参数中修改 payload再发送到后端去,查看是否有 sql语句的报错。3.4)再搜索(2006%‘and 1=1 and ‘%’=’)和(2006%‘and 1=2 and ‘%’=’)http://host/test.php?

2024-04-04 17:14:13 628

原创 安全测试重点思考(中)--如何防止漏洞XSS和CSRF漏洞

跨站请求伪造,冒用Cookie中的信息,发起请求攻击。CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

2024-04-04 15:50:30 1019

原创 安全测试重点思考(上)--AWVS使用/XSS漏洞复现

DVWA 一共包含了十个攻击模块,分别是:Brute Force(暴力(破解))、Command Injection(命令行注入)、CSRF(跨站请求伪造)、- File Inclusion(文件包含)、File Upload(文件上传)、Insecure CAPTCHA (不安全的验证码)、SQL Injection(SQL注入)、SQL Injection(Blind)(SQL盲注)、XSS(Reflected)(反射型跨站脚本)、XSS(Stored)(存储型跨站脚本)。

2024-04-03 12:56:25 1260

原创 力扣之每日四题day01--二叉树遍历篇

二叉树的前序遍历是一种深度优先遍历(DFS)的方法,它按照“根节点 -> 左子树 -> 右子树”的顺序遍历二叉树的节点。二叉树的后序遍历是一种深度优先遍历(DFS)的方法,它按照“左子树 -> 右子树 -> 根节点”的顺序遍历二叉树的节点。二叉树的中序遍历是一种深度优先遍历(DFS)的方法,它按照“左子树 -> 根节点 -> 右子树”的顺序遍历二叉树的节点。二叉树的层序遍历是一种广度优先遍历(BFS)的方法,它按照层级顺序逐层遍历二叉树的节点。

2024-04-02 22:08:34 974

原创 一维数组内存分析+多维数组

如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,像Excel中的表格、围棋棋盘一样。某公司2021年全年各个月份的销售额进行登记。按月份存储,可以使用一维数组。如下:如果改写为按季度为单位存储怎么办呢?对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。

2024-04-02 20:13:18 843

原创 sql之每日五题day02--多表联查/聚合函数/多值判断/函数

现在运营想要将用户划分为20岁以下,20-24岁,25岁及以上三个年龄段,分别查看不同年龄段用户的明细情况,请取出相应数据。分别查看学校为山东大学或者性别为男性的用户的device_id、gender、age和gpa数据,结果不去重。现在运营想要将用户划分为25岁以下和25岁及以上两个年龄段,分别查看这两个年龄段用户数量。现在运营想要计算出2021年8月每天用户练习题目的数量,请取出相应数据。仅查看山东大学的用户在不同难度下的每个用户的平均答题题目数。本题注意:age为null 也记为 25岁以下。

2024-04-02 15:46:50 523

原创 Mysql重点思考(下)--SQL 优化/慢查询

极端点说,SQL 优化就是对索引的优化。因此,我们要看下各种情况下,如何优化索引。一般情况下,我们把查询时间超过1s的查询称为慢查询。

2024-04-02 15:17:51 1191

原创 Mysql重点思考(中)--mysql前缀和覆盖优化

索引就是让数据按照某种顺序进行存储或检索,因此当我们使用 GROUP BY 对数据进行分组查询,或者使用ORDER BY对数据进行排序的时候,就需要对分组或者排序的字段进行索引。举例1:要在 100 万行数据中查找其中的 50 万行(比如性别为男的数据),一旦创建了索引,你需要先访问 50 万次索引,然后再访问 50 万次数据表,这样加起来的开销比不使用索引可能还要大。在上面的示例中,显示了表 T 的两个索引:PRIMARY 主键索引和 k 列上的普通索引。,以提高等值查询的性能。

2024-04-01 21:33:52 1212 1

原创 安全测试--接口加解密

这样可以确保加解密程序的正确性和一致性,从而保证接口的安全性和可靠性。在进行拷贝之前,需要先对程序进行测试和验证,确保其能够正常工作。因此,在实际工作中,如果需要对接口进行加解密,应该与开发人员协商并从服务器中拷贝加解密程序。接口加解密程序应该从服务器开发那里拷贝过来。因为客户端和服务器的加解密工具必须一致,这意味着测试人员不能修改加密或解密程序,而是。2、确定⼯具如何使⽤(如何加密、如何解密)3、明确请求示例(请求参数格式及使⽤)1、找开发拷⻉加密和解密⼯具。

2024-04-01 10:24:49 314

原创 IDEA工程与模块管理

的,比如:user-core-module、user-facade-module和user-hessian-module等等,模块之间彼此可以。接着打开自己IDEA的项目,会在项目目录下看到拷贝过来的module,只不过不是以模块的方式呈现。project(工程) - module(模块) - package(包) - class(类)目前,主流的大型项目结构基本都是多Module的结构,这类项目一般是。一个project中可以创建多个module。一个module中可以创建多个package。

2024-03-31 22:02:49 375

原创 sql之每日五题day01--多表联查/聚合函数

所以,在 LEFT JOIN 中,左边的表是指在 FROM 子句中出现在 LEFT JOIN 关键字之前的那个表,而右边的表则是在 LEFT JOIN 关键字之后的表。题目:现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校。现在运营想要查看不同大学的用户平均发帖情况,并期望结果按照平均发帖情况进行升序排列,请你取出相应数据。运营想要计算一些参加了答题的不同学校、不同难度的用户平均答题量,请你写SQL取出相应数据。

2024-03-31 20:23:32 493

原创 Mysql重点思考(上)--mysql的索引优化

全表扫描,效率最低,应该尽量避免使用通过完整索引扫描进行查询,效率较低,可能会导致全表扫描通过索引范围进行查询,效率相对较低,但仍然比全表扫描要好使用非唯一索引进行查询,可能会返回多行结果,但效率仍然比较高使用索引进行连接,只有一行匹配,效率较高通过常量条件进行查询,是最理想的访问方式,通常表示数据库能够直接定位到唯一的行在一个字典中,你可以按照字母顺序快速查找单词,而不需要逐个查找。这就类似于在数据库表中使用索引来快速查找数据。字典中的字母顺序类似于索引中的排序规则,而单词类似于表中的数据。

2024-03-31 17:07:19 730

原创 Linux企业级别日志的查找

这个命令中的 -f 选项用于实时跟踪日志文件的变化,这样你可以在新的日志信息出现时立即看到。通配符 * 将匹配所有以 [email protected] 开头的日志文件,从而让 tail 命令可以查看到最新的日志文件。tail -f 命令会打开文件,并显示文件的末尾部分,然后等待文件内容的更新,一旦文件内容发生变化,它会自动将新的内容追加到输出,并持续显示文件的最新内容,直到你手动停止命令。记录了所有对数据库执行的更改操作,包括插入、更新、删除等,用于数据恢复、复制等。

2024-03-31 15:29:36 1038

原创 Linux重点思考(下)--shell脚本使用以及内核开发

确保在备份目录中创建适当的目录结构,并给备份文件加上时间戳以区分不同的备份版本。在虚拟内存系统中,正向映射指的是从虚拟地址到物理地址的映射过程。当程序访问虚拟内存中的某个地址时,操作系统通过页表等数据结构将虚拟地址映射到物理内存中的实际地址,从而使得程序能够正确访问内存。确定备份目录: 首先,确定你要备份的文件或目录,以及备份存储的位置。例如,你可能希望备份/home/user/documents目录中的所有文件。在脚本中,列出需要清理的文件和目录,并使用rm命令或类似的工具来删除它们。

2024-03-30 18:25:43 557

原创 Linux重点思考(中)--端口/静态内存/负载/日志

load average: 0.25, 0.28, 0.30:系统的平均负载,分别代表过去 1 分钟、5 分钟和 15 分钟的平均负载。这里的负载指的是正在运行或等待 CPU 时间的进程数目。‘{print NR":"NF}’:这是 AWK 的程序块,print NR":"NF 会打印出当前行的行号(NR)和字段数(NF),并用冒号 “:” 连接起来。uptime 命令用于显示系统的运行时间以及系统的平均负载(load average)-h:以人类可读的格式显示输出(例如,KB、MB、GB)。

2024-03-30 15:28:48 833

原创 Linux重点思考(上)--权限/解压/定时任务/性能

前言:打开终端,可以通过ll或者ls -al的命令查看当前目录下的文件详细信息含ls-l查看出来的信息栏含义详解,如下所示:

2024-03-30 13:02:45 1096

原创 用户认证安全性测试

3.会话通常在用户登录时创建,并在用户退出登录或超时一段时间后销毁。它可以存储用户的临时数据,在用户与服务器之间的多个请求之间共享。3.在身份验证方面,令牌通常是通过用户名和密码进行身份验证后,由服务器签发给客户端的。1.会话是在客户端和服务器之间建立的持续通信连接,用于跟踪用户在应用程序或网站上的活动状态。1.令牌是一个用于身份验证和授权的凭证,通常由服务器颁发给客户端。密码是最常见的认证手段,持有正确密码的人被认为是可信的。缺点是密码认证是一种比较弱的安全方案,可能会被猜解。

2024-03-30 10:36:18 1045

原创 Jenkins实现CICD

使用 Jenkins 实现自动化集成部署,首先要准备三台服务器。Git 服务器业务服务器Jenkins 服务器title 随意写, key 栏输入刚复制的公钥,可以用cat 命令来查看公钥,配置ssh的目的是实现自动登录git仓库而不用输入密码用户名。

2024-03-29 21:20:33 1254

原创 安全测试体系

安全测试就是发现软件安全漏洞的过程,旨在保护软件系统的数据与功能。

2024-03-29 10:26:07 509

原创 mysql--事务四大特性与隔离级别

提交一个事务回滚一个事务转账示例并发事务引发的问题读已提交可重复读(MySQL默认)总结

2024-03-28 21:21:55 1662 1

原创 提取html工具封装和应用

⿊⻢程序员软件测试2020年接⼝测试Web⾃动化测试

2024-03-28 18:16:12 410

原创 数据存储文件的编写以及参数化的引用

2、最外侧使⽤{},模块下⼏个接⼝,编写⼏个key,值为列表。1、根据模块来新建json⽂件(1个模块1个json⽂件)3、使⽤参数化组件进⾏引⽤ parametrize。2、编写读取⼯具⽅法 read_json()这段代码主要是进行登录测试,首先检查密码中。3、列表值中,有⼏组数据,就写⼏个{}.,等待60秒后再次进行登录测试,确保。1、编写数据存储⽂件 json。

2024-03-27 10:42:18 645

原创 如何对注册登录接口添加断言处理

【代码】如何对注册登录接口添加断言处理。

2024-03-27 08:48:31 278

原创 金融投贷通--接口测试分析、设计与实现

原因:ui功能测试需要等待前端⻚⾯开发完成、后台接⼝开发完后且前端与后端联调完成。1、认证接⼝请求头使⽤multipart/form-data。ui功能:功能调⽤(前端js、服务器端)+⻚⾯布局+兼容。2、三⽅开户、三⽅充值、三⽅投资都需要调⽤Mock接⼝。原因:接⼝测试只测服务端功能以及没有多⻚⾯操作因素。1、测试接⼝依赖的数据是否都明确(请求、响应)3、参数规则(类型、必填、⻓度、等等)说明。接⼝测试:完整的测试服务端功能验证。2、分析接⼝之间依赖关系及关联。结论:接⼝测试先执⾏。

2024-03-26 15:24:51 527

原创 金融投贷通--功能测试分析与设计

5、测试总结(1、测试结论 2、缺陷修复程度 3、剩余缺陷 4、测试收获)4、缺陷统计及分析(模块发现的缺陷、缺陷严重程度分布、开发与缺陷)投资失败(余额不⾜、投资⾃⼰标、密码错误、⾮10的倍数)投资失败(最⾼可投⾦额、最⼤投资⾦额、最低投资⾦额)投资失败(未登录、未开通资⾦托管账号、未⻛险评测)投资失败(满标审核不通过、提前复审、部分复审)①请求错误(⽅法、URL、参数、信息头类型)投资业务流程、提前复审、部分复审。3、上线之前评估缺陷带来的影响。投资失败(管理员撤标、过期)投资成功(延期、2次满标)

2024-03-26 09:56:35 538

原创 金融投贷通(金融投资+贷款通)项目准备

理财项⽬,是⼀个p2p(个⼈对个⼈)借贷平台。

2024-03-26 09:09:44 1056

原创 Jmeter参数化定义和实现

1.添加线程组2.添加用户定义的变量。格式:变量名-变量值3.添加HTTP请求4.添加查看结果树用户定义的变量http请求查看结果树。

2024-03-25 20:22:53 217

原创 JMeter元件作用域和执行顺序

模拟用户,支持多用户操作多个线程组可以串行执行,也可以并行执行第一个HTTP请求中,URL错误,导致服务器产生了重定向,提供了新的URL路径JMeter会自动发送第二个HTTP请求(使用第一个HTTP请求中返回的URL路径)点击最外层HTTP请求时,显示的内容与最后一个HTTP请求的请求和响应数据一致。

2024-03-25 12:06:11 814

原创 性能测试的概述和指标

性能测试需求覆盖情况,测试过程回顾,及测试中出现的问题(如何去分析、调优、解决的)—基本要求性能测试过程中遇到各类风险是如何控制的;目前是否还有其他的性能风险存在经过该项目性能测试后,有那些经验和教训等内容。

2024-03-25 10:39:26 787

原创 pytest框架的封装以及用例管理框架

在大型项目中,自动化测试的比例通常会进一步增加,占总测试工作量的 50% 到 80% 或更多。因此,团队会投入更多的资源和精力来建立和维护自动化测试框架,并加强自动化测试的覆盖范围。在中型项目中,自动化测试的比例可能会增加,大约占总测试工作量的 30% 到 50%。因此,团队会倾向于增加自动化测试的覆盖范围,以提高测试效率和稳定性。这是因为在小型项目中,通常会有较少的功能和交互,因此自动化测试的需求相对较少。在小型项目中,自动化测试的比例可能较低,大约占总测试工作量的。1.元素是否加载完成。

2024-03-24 16:13:06 892

原创 全面熟练Requests库以及底层方法调用逻辑

这是一个可变数量的关键字参数,允许你传递任意数量的其他参数给函数。表示接受任意数量的关键字参数,这些参数将被传递给底层的 HTTP 库,以便进行定制化的配置。表示接受任意数量的关键字参数,这些参数将被传递给底层的 HTTP 库,以便进行定制化的配置。,默认为 None,表示要作为 JSON 数据发送的内容,通常是一个字典或类似字典的对象。,默认为 None,表示要作为查询参数发送的数据,通常是一个字典或类似字典的对象。,默认为 None,表示要作为表单数据发送的内容,通常是一个字典或类似字典的对象。

2024-03-24 14:41:50 1584

原创 pytest之统一接口请求封装

pytest之统一接口请求封装pytest的requests_util.pyrequests_util.py接口自动化测试框架的封装yaml文件如何实现接口关联封装yaml文件如何实现动态参数的处理yaml文件如何实现文件上传有参数化时候,怎么实现断言yaml的数据量大怎么处理接口自动化框架的扩展:加密接口,签名接口,自定义的功能接口pytest的requests_util.pyrequests_util.pyimport requestsclass RequestsUtil: # 创

2024-03-23 21:29:34 541

原创 pytest之yaml格式测试用例读写封装

pytest.mark.parametrize(“参数名”,列表数据)参数名:用来接收每一项数据,并作为测试用例的参数。Map为字典,一对key:value键值对。列表数据:一组测试数据。使用‘-’表示列表。

2024-03-23 17:42:04 820

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除