自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 详细教程!VMware Workstation Pro16 安装 + 创建 win7 虚拟机!

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。13、点击“自定义硬件”,点击“新 CD/DVD(SATA)”,选择“使用ISO映像文件”,点击“浏览”选中本地已下载好的win7镜像路径,点开高级->选择IDE,点击确定,点击完成。4、这里可依据自己的情况,点击新建,创建磁盘分区,然后点击下一步后,进行安装。

2024-02-25 19:18:49 1482

原创 五大方法教你如何分分钟构造百万测试数据!

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。这种方法会比纯页面添加要快速一些,使用一个接口测试工具,比如Jmeter,postman的CSV的方法,批量读取数据发送接口请求,实现数据的构造;在测试的工作过程中,很多场景是需要构造一些数据在项目里的,方便测试工作的进行,构造的方法有很多,难度和技术深度也不一样。

2024-02-23 16:54:22 866

原创 字节一面 : post为什么会发送两次请求?

自定义标头限制:请求的 HTTP 标头只能是以下几种常见的标头:Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type(仅限于 application/x-www-form-urlencoded、multipart/form-data、text/plain)。如果服务器认可该跨域请求,将返回一个包含 Access-Control-Allow-Origin 等头部信息的响应,浏览器才会继续发送实际的跨域请求。

2024-02-22 16:50:07 900

原创 谁会拒绝一篇关于【python装饰器】的友情分享呢~

的时候,会先将sum函数作为参数传给Decrator类(通过类的`__init__`初始化函数接收),此时 fn =sum(x,y)(只是实例未调用)6. *` __call__`方法返回的函数self.fn(*args是被装饰后的函数实例,然后传给sum函数执行。1、outer函数内部嵌套了一个inner函数,利用闭包的原理inner函数可以直接使用outer函数fn的参数。2、在执行outer函数的时候,inner函数并未被执行,是直接返回inner函数给test01函数。

2024-02-21 19:53:48 973

原创 Django ORM 框架中的表关系,你真的弄懂了吗?

默认情况下,这个表名是使用多对多字段的名字和包含它的模型名生成(上面的例子,会生成 pizza_toppins),然后包含两个字段,分别是以两个关系模型的名字和 _id 组成(pizza_id,topping_id),并创建外键引用对应的表的 id。注意:创建学生,或者是创建课程的时候,都不需要去编辑彼此,这个时候建立多对多字段,主要是为了查询方便。外键字段的第一个参数是一个位置参数,就是要关联的模型,可以是模型类本身,也可是字符串形式的导入路径(当引用其他应用的模型,和引入后定义的模型时很有用)

2024-02-20 16:17:11 886

原创 3分钟,学会一个 Lambda 小知识之【流API】

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。Stream是Java8中处理集合的关键抽象概念,它可以指定你对集合的,可以执行查找、过滤和映射等数据操作。接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。接收一个函数参数,将流中的每个值都换成另一个流,然后把所有流连接成一个流。

2024-02-19 15:55:40 815

原创 测试覆盖率 之 Cobertura的使用

代码覆盖率是对整个测试过程中被执行的代码的衡量,它能测量源代码中的哪些语句在测试中被执行,哪些语句尚未被执行。

2024-01-16 16:39:26 1088

原创 职场硬货:刚入职面对陌生的被测系统, 没有需求文档如何快速熟悉?

测试人员在项目组内的角色并不像产品经理需要持续对外沟通, 但团队内部的沟通依然非常重要, 与项目经理,、产品经理,、开发团队,、运维团队甚至客服人员的沟通, 能够极大的促进测试人员对需求的分析和掌握, 良好的沟通能力也可以有效的提升工作的效率, 同时对新人的产生影响, 使团队中的每个成员都感受到几级主动的态度, 大家自然也愿意支持。

2024-01-15 15:36:24 933

原创 3年测试经验,用例设计竟然不知道状态迁移法?

对于状态转换有存在多个事件触发,覆盖多个事件的操作,比如“未支付--> 已取消”这条测试路径,需要测试 2 种情况:1)用户手动取消车票订单 2)超过 45 分钟用户未支付,自动取消车票订单。实际工作中,对于业务流程复杂的产品,不能很好地通过场景覆盖的方法进行用例设计时,可应用状态迁移法的思路,从业务的各种状态出发,并通过这些状态之间的切换条件串联起来进行测试覆盖,以此保证用例的高覆盖率。未支付--> 已支付--> 已出票--> 改签成功--> 已使用。未支付--> 已支付--> 已出票--> 退票成功。

2024-01-14 16:17:22 873

原创 全网最全持续集成接口自动化-jmeter+ant+jenkins

ant 批量执行Jmeter。

2024-01-12 17:09:32 906

原创 2023产生的那些让我印象深刻的五个bug,无法释怀!

相信大家在工作中面试过程中经常被问到,让你印象最深刻的一个bug是什么,这是一个开放性的题目,并没有标准答案,每个人接触过的系统都不一样,遇到过的问题也不一样,可能面试官只是想看一下你的表达能力,以及平常在工作中是否会进行总结。这类问题可以挑选容易被人忽略的场景,难以想到的场景,特殊机型的兼容性或者特殊操作下才会出现的问题等。

2024-01-11 16:45:02 816

原创 当软测遇上加密接口,是不是就不能测了?

相信大家在工作中做接口测试的时候,肯定会遇到一个场景,那就是你们的软件,密码是加密存储的。那么这样的话,我们在执行接口的时候,对于密码的处理就开始头疼了。所以,本文将使用jmeter这款java开源的接口测试工具,给大家来讲解jmeter完成加密的接口请求在执行加密之前,你需要了解3个知识点:1、 元件->前置/后置处理器2、 beanshell是什么3、 beanshell的内置变量前置处理器:此元件突出一个“前”,所以它是在请求发出之前的一个处理器。

2024-01-10 16:18:17 381

原创 还不了解 Dockerfile 的同学不是好测试人

2023年B站最新Jmeter接口测试实战教程,精通接口自动化测试只需要这一套视频共计16条视频,包括:1.【Jmeter】什么是接口测试?为什么要做接口测试?前言:近年来 Docker 非常火,想要玩好 Docker 的话 Dockerfile 是绕不开的,这就好比想要玩好 Linux 服务器绕不开 shell 道理是一样的。(.dockeringore)作用是用于存放不需要打包导入镜像的文件,根目录就是工作空间目录。每一条指令都会生成一个镜像层,镜像层多了执行效率就慢,能写成一条指定的就写成一条。

2024-01-09 17:21:50 815

原创 Jmeter扩展函数?年薪50W+的测试大佬教你怎么玩

为什么要做接口测试?第 1 个参数内容或变量值,与第 2 个参数内容或变量值,相等,则返回第 3 个参数的值,不相等,则返回第 4 个参数的值,最后把结果传递给第 5 个参数变量名。对第 1 个参数的内容或变量的值,进行从第 2 个参数值的索引数字开始,到第 3 个参数的索引数字值(不包含)结束的切片,把结果传递给第 4 个参数。对第 1 个参数的内容或引用变量的值,搜索第 2 个参数的内容,有,则用第 3 个参数的值替换,把替换后的结果给第 4 个参数变量名。

2024-01-08 15:17:17 773

原创 软测思考题:自动化测试重运行是好是坏?

但是,当自动测试失败时,其余部分可能会继续运行。而自动化的重运行机制也是这样,当一个用例失败时,我们可以选择复现,如果第二次没再出现,我们就默认了,这里没问题,因为问题没有复现!不管如何,重运行机制是一种非常好的工具和手段,它能让我们知道哪些问题是一致性的,哪些是间歇性的,重点在于,作为测试人员应该警戒所有的红色和黄色,而不是想法设法把红色变成绿色。首先,一定要记录所有失败的日志信息和失败原因,如果有必要,不管重运行后有没有成功,只要用例有一次爆红,都应该引起测试人员的警觉:这里是很有可能出问题的。

2024-01-07 15:05:51 870

原创 构建性能测试知识体系

关于如何构建知识体系,CC 也给出了自己的一些看法性能测试的工具原理与使用。性能测试目标与场景分析。如何制定性能测试指标;参考数据有哪些,怎么获取;常见的性能测试场景有哪些,如何通过这些场景来提高性能测试的覆盖率,等等。这些都是性能测试方案的组成部分,只有制定了正确的性能测试方案才能做出有效的性能测试。分层监控体系建设:重点是监控和问题定位,包括如何做硬件监控、系统链路监控,如何打造可视化的监控报表。监控是性能测试必要的步骤,是你发现性能问题的“眼睛”。

2024-01-05 16:43:26 804

原创 数据迁移测试经验分享

除了考虑新系统的规则变化,还要考虑旧数据迁移后需要进行规则适配,例如旧系统没有,新系统有的字段,验证是否给到正确的默认值。保证旧系统数据迁移后业务的可用性与连续性,避免迁移后需重新回滚测试。接下来,我们将详细介绍数据迁移的测试策略及测试实施,话不多说,上干货~

2024-01-04 16:06:39 1080

原创 手把手教你,Selenium 遇见伪元素该如何处理?

之所以被称为伪元素,是因为他们不是真正的页面元素,HTML 没有对应的元素,但是其所有用法和表现行为与真正的页面元素一样,可以对其使用诸如页面元素一样的 CSS 样式,表面上看上去貌似是页面的某些元素来展现,实际上是 CSS 样式展现的行为,因此被称为伪元素。【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。

2024-01-03 15:41:37 850

原创 看到这个数据库设计,我终于明白了我和其他软测人的差距

更精准的掌握业务,针对接口测试、Web 测试,都是依照项目/产品需求进行用例设计,如果掌握数据库设计知识,能直接面对开发的数据表,更好、更精准的理解业务逻辑;:将概念模型细化,细化出概念模型中实体的属性,实体间关系通过哪些属性体现;将上述模型的实体、属性、关系,根据实际的数据库产品,落地成对应的物理表,并构建起表的字段、主键、外键、约束、默认值、是否可空、视图等。数据库测试与验证,包括数据有效性的验证,设计是否合理(比如是否有插入异常、更新异常、删除异常),数据库压力测试,数据库同步验证等。

2024-01-02 19:27:22 967

原创 分享一波测试面试题(偏银行、信贷)

接口自动化测试的具体实现可以使用一些开源的自动化测试框架和工具,例如JUnit、TestNG、Selenium、Rest-Assured、Postman等,同时也需要依据实际测试需求和业务场景,进行测试用例的设计和脚本的编写、调试和执行等。例如,在浏览网页时,为了提高用户的访问速度,浏览器可以使用缓存技术,将一些静态资源(如图片、CSS文件等)缓存到本地,下次访问同一页面时可以直接从本地获取,而不需要再次请求服务器。同时,也需要对问题进行分析和总结,找出问题的根本原因,以避免类似问题的再次发生。

2023-12-29 17:24:04 890

原创 花几分钟整点jmeter花活,轻松超越90%软件测试

首先,P 函数,在 jmeter 中,是获取属性函数,它有两个参数,第 1 个参数,是属性名,这些属性,可以事先定义的静态属性,也可以是动态生成的动态属性,图中用到的所有属性,就是事先没有定义,在运行时动态定义的属性;这样,固然很好,直接就可以用,但是,当我们用 CLI 模式,做负载测试时,我们期望能随时更改线程数、ramp-up 时间和持续运行时间,你怎么做?jmeter 不仅支持属性文件配置静态属性,也支持,在脚本运行过程中,动态生成属性,而且,还支持,外部传入动态属性。有没有更简洁的方法呢?

2023-12-29 16:28:13 817

原创 测试前不用写,测完了让后补!测试用例真的那么重要么?

中小公司内往往是谁设计的测试用例,那么就由谁来执行测试用例。此时,测试用例中的测试步骤和测试数据,既是对测试员实施测试的指导,也是对测试员的测试行为的约束,通过每一条用例的执行记录来监督测试员的测试过程。开发写好代码交付测试,此时测试方才考虑开始工作,结果发现时间很短,那就不写测试用例了,根据大家的经验和对被测系统的了解,开始测试,等测完了把测试用例补上就好了。有了测试用例,回归测试时将主要的、重点的、与业务相关的测试用例拿出来执行就好了,操作步骤和输入的数据都写好了,直接用可以,回归测试简单了!

2023-12-28 15:34:20 946

原创 被裁员之前的4大征兆,看看你占了哪条!

最近,发现不少粉丝在聊裁员的话题,恰逢年底,很多人担心会被公司裁掉。而有的粉丝已经历过裁员,更有甚者HR头一天通知,第二天就让走人,被裁得猝不及防。结合粉丝的分享和小谭经历过的人事,跟大家聊聊公司开始裁员的几个征兆,大家量身比较,赶紧做出打算吧~

2023-12-27 16:02:57 380

原创 接口自动化框架设计必备利器之参数传递

在我们设计自动化测试框架的时候,我们会经常将测试数据保存在外部的文件(如Excel、YAML)中,实现测试脚本与测试数据解耦,方便后期维护。当涉及到业务场景接口用例时,由于接口与接口存在关联关系,需要从上游接口取出来相关字段传递给下游接口作为入参使用,比如在Excel中我们会这样做:在excel中新增一列【提取响应】,将上游接口的响应字段提取出来,在下游接口当中通过标记符进行使${XXX}【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili。

2023-12-26 16:22:07 851

原创 人力物力和时间资源有限?守住1个原则,精准覆盖所有兼容性测试!

随着 APP 应用范围越来越广,用户群体越来越大,终端设备的型号也越来越多,移动终端碎片化加剧,使得 APP 兼容性测试成为测试质量保障必须要考虑的环节。APP 兼容性测试通常会考虑:操作系统、厂家 ROM、屏幕分辨率、网络等方面。但如果要在有限的测试人力物力和时间资源下覆盖所有兼容性测试维度是困难的,因此,通常采用 Top X 原则,即 Top 排名靠前的。如何获取 Top X 数据,可采用埋点方式尽量获取自己软件 APP 的数据,这样更精准。

2023-12-25 17:11:15 927

原创 Jmeter、postman、python 三大主流技术如何操作数据库?

只要是做测试工作的,必然会接触到数据库,数据库在工作中的主要应用场景包括但不限于以下:功能测试中,涉及数据展示功能,需查库校验数据正确及完整性;例如商品搜索功能自动化测试或性能测试中,某些接口要跑通,需要关联到数据库操作;例如注册接口中短信验证码获取自动化测试中断言处理,除了响应结果的断言,还包括到数据库断言自动化测试或性能测试中,某些场景需批量造数据,可能需要用到数据库造数据测试中,发现bug,需定位bug,可能需要查询到数据库进行定位。

2023-12-24 15:32:38 1735 1

原创 Django 5.0正式发布,最流行Python Web框架

随着 Django 5.0 的发布,Django 4.2 已结束其 mainstream 支持,最后一个小错误修复版本 4.2.8 已于昨天发布。该特性简化了 Django 表单字段相关元素的渲染,例如标签、小部件、帮助文本和错误等。根据 JetBrains 公布的 2022 Python 开发者调查结果,Python Web 框架的三巨头依旧是 Flask、Django 和 FastAPI。此外还引入了字段组 (field group),用于简化 Django 表单字段的相关元素的渲染。

2023-12-22 19:31:15 950

原创 shell 基本语法搞明白,linux才能玩的转!

date +%Y%m%d --date="-n month ago" 获取 n 个月以后的日期。date +%Y%m%d --date="-n years ago" 获取 n 年以后的日期。date -d "-n month ago" +%Y%m%d 获取 n 个月后的日期。date +%Y%m%d --date="-n day" 获取 n 天前日期。date +%Y%m%d --date="-n day" 获取 n 天后日期。date -d "n days" +%Y%m%d 获取 n 天后的时间。

2023-12-21 15:54:08 438

原创 京东一面:post为什么会发送两次请求?

同源策略是一个重要的安全策略,它用于限制一个源的文档或者它加载的脚本如何能与另一个源的资源进行交互。如果两个 URL 的协议、主机和端口都相同,我们就称这两个 URL 同源。协议:协议是定义了数据如何在计算机内和之间进行交换的规则的系统,例如 HTTP、HTTPS。主机:是已连接到一个计算机网络的一台电子计算机或其他设备。网络主机可以向网络上的用户或其他节点提供信息资源、服务和应用。使用 TCP/IP 协议族参与网络的计算机也可称为 IP 主机。

2023-12-20 16:13:49 884

原创 自己的测试技术烂, 不学几招怎么能快速提升自己!

很多小伙伴在成功入职后, 进入测试开发发展后, 都会进入一个瓶颈过渡期, 当然能够自己意识到这个问题说明还来得及!那么作为测试开发人员, 如何走出舒适区, 需要学习和掌握那些内容, 从而实现自己的最终目标呢?今天我们就来说一说, 在职场中如何不断的提升自己.

2023-12-20 16:02:19 879

原创 掌握Pytest魔法:一站式指南 to自动化测试框架的威力与实践

下面我们首先来简单介绍Pytest及相关内容下面我们来简单介绍Pytest框架:pytest是一个非常成熟的单元测试框架,经过多版本的迭代,主要优点在于灵活和简单pytest具有极强的兼容性和生态环境,它可以结合selenium,requests,appium完成各种不同的自动化pytest具有更好的页面展示效果,它可以生成自定义allure报告以及和Jenkins持续集成下面我们给出一些和Pytest框架可以很好聚合的框架类型:pytestpytest-html:主要用来生成html报告的插件。

2023-12-19 16:11:54 873

原创 自动化测试 (五) 读写64位操作系统的注册表

注册表编辑器在 C:\Windows\regedit.exe。或者在运行中,运行"regedit". 就可以启动注册表编辑器。注册表由主键,键,子键,值项构成。如下图主键中的:HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE中的内容差不多,一个是当前用户的设置,一个是机器的设置。如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386。

2023-12-18 15:27:08 940

原创 自动化测试 (四) 读写64位操作系统的注册表

注册表编辑器在 C:\Windows\regedit.exe。或者在运行中,运行"regedit". 就可以启动注册表编辑器。注册表由主键,键,子键,值项构成。如下图主键中的:HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE中的内容差不多,一个是当前用户的设置,一个是机器的设置。如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386。

2023-12-17 16:25:23 933

原创 自动化测试 (三) 自动卸载软件

从注册表中我们找到UninstallString这个键值: MsiExec.exe /X{C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF}, 那么ProductCode就是{C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF}32位的程序而是在: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\。关于MsiExec.exe 请看。

2023-12-15 15:28:30 900

原创 自动化测试 (二) Web自动化测试原理

目前市面上有很多Web UI自动化测试框架,比如WatiN, Selinimu,WebDriver,还有VS2010中的Coded UI等等. 这些框架都可以操作Web中的控件,模拟用户输入,点击等操作,实现Web自动化测试。其实这些工具的原理都一样,都是通过调用IE COM接口和HTML DOM 对IE浏览器以及WEB测试对象的操作。

2023-12-14 15:41:38 915

原创 自动化测试 (一) 12306火车票网站自动登录工具

还记得2011年春运,12306火车票预订网站经常崩溃无法登录吗。今天我们就开发一个12306网站自动登录软件。帮助您轻松订票Web的原理就是,浏览器发送一个Request给Web服务器,Web服务器处理完这个请求之后发送一个HTTP Response给浏览器。如果我们用自己写的程序来发送Request给Web服务器,然后再捕获Web服务器发回来的Response. 检查它与期望值值是否一致。这不就是Web自动化测试吗?这样的自动化测试叫做请求响应测试, 别小看这样的自动化测试。

2023-12-12 16:24:22 868

原创 语音识别功能测试:90%问题,可以通过技术解决

现在市面上的智能电子产品千千万,为了达到人们使用更加方便的目的,很多智能产品都开发了语音识别功能,用来语音唤醒进行交互;另外,各大公司也开发出来了各种智能语音机器人,比如小米公司的“小爱”,百度公司的“小度”,三星公司的“bixby”,苹果的“siri”等等。这些语音识别的功能,提高人们使用电子的产品的体验,但是作为一名测试员,给你一款语音识别产品,要怎么进行测试呢?接下来,我就以小米手机为例,给大家介绍小米手机语音识别如何测试。小米语音识别功能如何进行测试?要知道语音识别功能如何测试,我们先了解智能产品语

2023-12-11 15:21:03 1313 2

原创 一文读懂:如何利用JMeter轻松提升系统性能

驱动包mysql-connector-java-5.1.38-bin.jar要放到本机Java路径:C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext下,并且配置之后,重新启动JMeter。登录成功后,下一步操作比如退出登录需要用到session值,所以我们需要获取登录接口的返回值。当并发多个用户时,需要每个线程都登录不同的用户,此时就需要运用到参数化。数据库测试需要加载JDBC驱动,JDBC配置,JDBC请求。在注册用户的时候,我需要随机生成手机号码进行注册。

2023-12-10 14:28:28 353

原创 如何教你四个类搞定分层自动化测试框架

我们刚开始做自动化测试,可能写的代码都是基于原生写的代码,看起来特别不美观,而且感觉特别生硬。来看下面一段代码:具体表现如下:driver对象在测试类中显示定位元素的value值在测试类中显示定位元素的方式在测试类中显示线程方式硬等待sleep几秒代码一报错,还要去测试类里面找是哪段代码报错,当代吗行数好多时,不好定位好多测试脚本组装批量执行后,报错后,定位问题,很吃力有命中的小伙伴嘛,有的话,请在文末下方留言,其他现象就不一一列举了。

2023-12-08 15:21:10 907

原创 一文读懂python shutil,测试不迷茫

shutil.copyfileobj(open(来源文件,'r'),open('目标文件','w'))shutil.make_archive('目标文件路径','归档文件后缀','需要归档的目录')shutil.unpack_archive('归档文件路径','解包目标文件夹')列表 [(后缀,解释),(后缀,解释),(后缀,解释)...]列表 [(后缀,解释),(后缀,解释),(后缀,解释)...]shutil.copy2('来源文件','目标地址')shutil.copy('来源文件','目标地址')

2023-12-07 15:56:53 311

空空如也

空空如也

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

TA关注的人

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