
接口自动化测试
文章平均质量分 88
测试架构师北凡
十二年互联网自动化测试和测试开发工程师,累死自己也要卷死同行,学无止境
展开
-
最强-接口自动化测试总结,接口鉴权+加密与解密+数据库操作/断言...
1、接口鉴权的多种方式1)后端接口鉴权常用方法cookie:携带身份信息请求认证之后的每次请求都携带cookie信息,cookie记录在请求头中token:携带身份信息请求认证之后的每次请求都携带token认证信息可能记录在请求头,可能记录在url参数中auth:每次请求携带用户的username和password,并对其信息加密oauth2(选修):携带身份信息请求认证服务端向指定回调地址回传code通过code获取token之后的请求信息都携带token。原创 2023-12-04 14:48:56 · 518 阅读 · 0 评论 -
接口自动化测试-从0到1落地实施,你不知道的都在这...
1、为什么要做接口测试测试理念的演变早些时候,软件研发交付流程大多遵循V型或W型的瀑布模式,这种模式下只有开发编码完成才会提测进入测试验证阶段。这个阶段测试同学做的大多是基于业务流程和页面的功能测试工作,也就是我们自嘲的“点工”。近几年随着业务迭代速度加快,以及测试行业的不断发展,像测试左移、敏捷测试等理念开始被更多的人认可。从软件工程的角度来说,越早介入发现问题和风险,修复的成本越低,最终交付的质量也越高。原创 2023-11-16 14:37:36 · 263 阅读 · 0 评论 -
全网火爆,Python接口自动化测试Mock服务详细总结(实战场景)
1、Mock实现原理与实现机制在某些时候,后端在开发接口的时候,处理逻辑非常复杂,在测试的时候,后端在未完成接口的情况下该如何去测试呢?1)什么是Mock?Mock这个词在英语中有模拟的这个意思,因此我们可以猜测出这个库的主要功能是模拟一些东西。准确的说,Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为。2)为什么要使用Mock?之所以使用mock测试,是因为真实场景很难实现或者短期实现起来很困难。原创 2023-11-14 14:31:25 · 646 阅读 · 0 评论 -
全网最细,Apipost接口自动化测试-关联配置,老鸟带你上高速...
在接口自动化测试中,接口之间可能存在依赖关系,即某些接口的执行需要先完成其他接口的执行。为了确保测试用例的正确执行,我们需要在配置测试用例时考虑接口之间的依赖关系。在编写测试用例时,需要明确每个接口的功能和输入输出参数。根据接口之间的依赖关系,将测试用例按照执行顺序组织起来。这里模拟用户在电商平台购物时的操作流程。介绍如何在Apipost自动化测试中配置接口之间的依赖关系以下操作可以在调试页面中配置好,导入到自动化测试用例时会保留。1、用户的操作流程。原创 2023-11-11 14:38:04 · 703 阅读 · 0 评论 -
测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)
使用场景大多数项目都有登陆权限认证,需要先登录获取token再用这个token作为请求头请求接口。每次测试接口都需要先调登录接口,再给每个请求设置请求头。有点麻烦,根据这个配置完成之后每次只需要先调一下登录接口,其它接口就直接请求就行了,不需要再管请求头。实现步骤1、登录接口登录接口采用MD5+RSA加密先将系统用户名及密码配置在postman环境变量中调用接口获取公钥,并在该接口tests里面设置将本次公钥放进postman环境变量中});原创 2023-11-10 14:22:59 · 1899 阅读 · 0 评论 -
全网最细,接口自动化测试框架与Redis结合+常见应用场景...
1、Redis 基本操作1)Redis的安装和配置在开始之前,首先需要安装Redis并进行相应的配置安装完成后,确保Redis服务已成功启动,并正确配置了连接信息(如主机地址、端口号、密码等)2)Redis与接口自动化测试框架的集成3)初始化Redis连接在接口自动化测试框架的初始化过程中,可以添加连接Redis的代码,确保测试过程中能够与Redis建立连接。2、操作 Redis 常用命令1)字符串操作# 设置键为"key1"的字符串值为"Hello, Redis!')原创 2023-11-09 14:47:58 · 250 阅读 · 0 评论 -
企业级,搭建接口自动化测试框架思路分析,8年测试老鸟整理...
在选择接口测试自动化框架时,需要根据团队的技术栈和项目需求来综合考虑。对于测试团队来说,使用Python相关的测试框架更为便捷。无论选择哪种框架,重要的是确保 框架功能完备,易于维护和扩展,提高测试效率和准确性。1、接口自动化测试项目框架简介搭建接口自动化测试框架的技术栈如下:语言:Python,简洁高效,上手容易,无压力;人生苦短,我用 python;测试框架:Unittest,封装自定义断言方法进行验证,如:eq\lt\lte\gt\gte\neq\str_eq等等;原创 2023-11-08 15:04:34 · 342 阅读 · 0 评论 -
全网最牛,Python接口自动化测试实战干货-项目接口案例,看这篇足够...
1、单元测试主要做什么?测试发现:从多个文件里面去找到我们的测试用例;测试执行:按照一定的顺序和规则去执行,并生成结果;测试判断:通过断言判断预期结果和实际结果的差异;测试报告:统计测试进度,耗时,通过率,生成测试报告;单元测试框架只是自动化测试框架中的组成部分之一。自动化测试框架中还包括:设计模式、数据驱动、关键字驱动、全局配置文件的封装、日志监控、selenium和requests二次封装、断言、报告邮件…原创 2023-11-07 14:56:48 · 1490 阅读 · 0 评论 -
测试老鸟,Python接口自动化测试框架搭建-全过程,看这篇就够了...
1、接口测试自动化好处可以在短时间内自动执行大量的测试用例;通过参数化和数据驱动的方式进行测试数据的变化,提高测试覆盖范围;快速反馈测试执行结果和报告;支持持续集成和持续交付的流程;2、使用Python+Requests+Pytest+Allure搭建测试框架目的简化接口测试编写:Requests库是 Python 的一个优雅且简单的 Http库,可以很方便地发送 http 请求,接收和处理接口返回的响应数据。原创 2023-11-02 15:12:14 · 4945 阅读 · 0 评论 -
火爆,接口测试+接口自动化测试整理总结,你不知道的都在这了...
1、接口自动化测试概叙什么是接口测试?原创 2023-10-18 14:46:02 · 254 阅读 · 2 评论 -
测试老鸟整理,Pytest自动化测试框架的一些关键点,一文贯通...
1、单元测试,是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试。2、自动化测试框架作用①提高测试效率,降低维护成本②减少人工干预,提高测试的准确性,增加代码的重用性③核心思想是让不懂代码的人能够通过这个框架去实现自动化测试3、pytest单元测试框架和自动化测试框架的关系:①单元测试框架是自动化测试框架的组成部分之一;②pom设计模式、数据驱动、关键字驱动、全局配置文件的封装、日志监控、断言、报告邮件等等4、pytest简介。原创 2023-10-11 15:03:03 · 227 阅读 · 0 评论 -
你真的会维护接口测试用例吗?接口/接口自动化用例常见问题+解决...
接口测试用例维护1、问题:接口列表中的接口不唯一问题:由于开发提供接口列表的方式不够高效或者由于测试人员对接口项目不够了解等原因,可能会导致测试项目中完整的接口列表不够明确,某些接口被重复测试或者某些接口未被覆盖到。改善:1)规定开发使用统一的文档工具推送新版本的接口文档(git等方式);规定统一的接口命名规范2)测试维护接口用例的接口关联当对应的接口下;及时维护和更新接口地图;原创 2023-10-10 14:43:40 · 669 阅读 · 0 评论 -
史上最全,Jmeter+Ant+Jenkins接口自动化集成(图文步骤)
1、安装 jdk、Jmeter、Ant、Jenkins安装图文之前写过,这里就不再过多叙述2、配置 Ant1)将 Jmeter 所在目录下 extras 子目录里的 ant-JMeter-1.1.1.jar 复制到 Ant 所在目录 lib 子目录之下,这样 Ant 运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发 JMeter 脚本。原创 2023-10-08 14:55:40 · 425 阅读 · 0 评论 -
全网最细,Python接口自动化测试参数关联(应用场景实例)
什么是参数关联?参数关联,也叫接口关联,即接口之间存在参数的联系或依赖。在完成某一功能业务时,有时需要按顺序请求多个接口,此时在某些接口之间可能会存在关联关系。比如:B接口的某个或某些请求参数是通过调用A接口获取的,即需要先请求A接口,从A接口的返回数据中拿到需要的字段值,在请求B接口时作为请求参数传入。参数关联有哪些场景?最常见场景:请求登录接口后获取到token值,后续其他接口请求时需要将token作为请求参数传入。原创 2023-09-28 14:41:00 · 490 阅读 · 0 评论 -
【全网最细】自动化测试注意事项+问题点汇总,不要再走弯路了...
1、WEB自动化测试框架是如何搭建的?我们web自动化测试使用的技术栈是:Python+Selenium+Pytest+Parametrices+Excel+Allure+Jenkins 框架使用的是基于Excel的关键字驱动,将维护框架和使用框架分离开来进行自动化测试时,将元素定位表达式及要执行在操作写入excel即可,显著降低了自动化测试的落地难度。主要功能:内置常用关键字,实现关键字驱动测试,有升级为BDD潜力;自动的判断浏览器类型版本,并自动下载、启动合适的浏览器驱动;原创 2023-09-26 14:25:59 · 462 阅读 · 0 评论 -
全网最细,Jmeter接口测试-实现动态关联实战整理,你要的都有...
业务场景:用户输入正确的用户名及密码登录系统,若该登录用户存在多个公司则需要选择相应的公司进入系统(若仅有一家公司则直接进入系统),可浏览公司相关产品信息。实现逻辑:用户登陆成功后首先会获取一个token值,出于安全机制会同步提供一个access_token。登录时选择公司及进入系统后的操作,如浏览产品会校验token值与access_token值是否正常。两者均正常,则可操作成功,但未传token值与access_token值或其失效的话,后续操作失败。原创 2023-08-15 15:58:53 · 914 阅读 · 0 评论 -
吐血整理,Python接口自动化测试-接口关联依赖处理(详细)
场景说明在面试接口自动化时,经常会问,其他接口调用的前提条件是当前用户必须是登录状态,如何处理接口依赖?在此之前我们介绍过session管理器保存会话状态。如果接口请求需要携带token,那么又如果处理呢?'code' : 1003 , 'msg' : '未授权或token已过期' }token处理思路在处理之前,token灵魂三连问:如何获取token?获取的token如何管理?其他接口如何携带token?思路如下:抽取登录接口返回值中的token;使用全局变量存储token。原创 2023-08-09 15:32:19 · 2347 阅读 · 0 评论 -
企业接口测试流程总结,你都走了哪些弯路?背锅不存在的...
首先我们要明确,通常所接口测试其实就属于功能测试,主要校验接口是否实现预定的功能,虽然有些情况下可能还需要对接口进行性能测试、安全性测试。URL的组成了更好的理解接口测试,我们需要对接口的URL有所了解,下面以GET请求URL为例,组成示例如下:通过上图可以看出来,一个典型的GET请求的URL可以分为以下几个部分:传输协议:工作中接触到的接口一般是http/https协议服务器域名/IP地址:指提供接口的系统所部署的服务器地址端口:不填则默认端口为80资源路径:请求资源所在的服务器路径。原创 2023-08-07 15:27:21 · 231 阅读 · 0 评论 -
企业真实的自动化框架?资深8年测试是如何设计实施的...
什么是框架?特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。也就是说框架本身不解决特定的问题,它是通过扩展的各种组件或者工具来解决问题,并且它可以方便的添加或者修改部分组件的功能。什么是自动化测试框架?原创 2023-08-03 15:30:43 · 238 阅读 · 0 评论 -
全网最强,Jmeter接口测试-SHA256加密接口测试(详细实战)
接口文档如下:接口地址: http://47.96.181.17:8098/login返回格式: json请求方式: POST请求参数:{“userName”:“您的用户名”,“password”:“sha256加密后的密码”}请求头:键:Content-Type 值:application/x-www-form-urlencoded键:X-Requested-With 值:XMLHttpRequest。原创 2023-08-02 19:47:55 · 1542 阅读 · 0 评论 -
接口自动化如何做?从工具到框架一篇全打通...
接口自动化主要做什么原理->业务逻辑->工具->自动化脚本和框架1、连通性每一次每一个接口调用的时候都会有一个responsecode,assertEqual(r.status_code,200),检查接口是否连通。当接口返回不正常时,它可以使用响应状态码非200来表达,也可以是响应体json中的code字段。不仅理解了该如何进行一次接口请求,也知道怎么样的接口响应是预期值。2、正确性3、工具需要的工具一般分为两类:一是请求发送和收取工具,例如postman和jmeter。原创 2023-08-01 15:41:36 · 521 阅读 · 0 评论 -
接口自动化测试-Python自动发送测试报告邮件封装(详细)
SMTP(Simple Mail Transfer Protocol)也就是简单邮件传输协议,是一种提供可靠且有效电子邮件传输的协议。python的smtplib模块就提供了一种很方便的途径发送电子邮件,它对smtp协议进行了简单的封装。python发邮件主要需要两个模块:smtplib和email,这两个模块是python自带的库,import即可使用。smtplib主要负责发送邮件,即一个发送邮件的动作,如连接邮箱服务器,登录邮箱,发送邮件。原创 2023-07-27 15:30:23 · 677 阅读 · 0 评论 -
全网最牛,Jmeter接口自动化-读取用例执行并结果回写(详细整理)
1、环境准备下载jxl.jar这个jar包;下载好之后,放到Jmeter的安装路径下的lib目录下;jxl.jar的作用:完成对Excel的读写以及修改操作;如何利用jmter操作excel的思路分析:①Excell一般有三个最重要的元素:workbook,sheet,cell②想要把结果储存到指定的单元格,那就必须依照这个三个元素来定位。③先获取excel的文件名称④获取表单名⑤获取单元格的坐标⑥获取结果,写入到对应的单元格去。原创 2023-07-26 15:21:49 · 667 阅读 · 0 评论 -
测试老鸟整理,Jmeter场景运行方式GUI+命令行运行,一点即通...
Jmeter场景的运行方式(GUI运行和命令行运行)运行方式GUI运行:通过图形界面方式运行,该运行方式的可视化界面及监听器动态展示 结果都比较消耗负载机资源,建议大并发时不用,一般进行脚本调试;命令行运行:通过jmeter命令行工具运行(性能测试建议通过命令行执行脚本)运行架构本地运行:运行本地一台Jmeter机器,所有的请求通过该机器发送。远程运行:用一台Jmeter控制机控制远程的多台机器来产生负载。控制机与负载 机之间通过RMI方式来完成通信。Jmeter的GUI运行。原创 2023-07-20 15:39:05 · 811 阅读 · 0 评论 -
全网最牛,python接口自动化测试-接口sign签名(实战撸码)
一般公司对外的接口都会用到 sign 签名,对不同的客户提供不同的apikey ,这样可以提高接口请求的安全性,避免被人抓包后修改请求参数乱请求。接口sign签名一登陆的接口请求为例,如下接口抓包报文信息,其中sign的签名规则如下第一步,拼接字符串,首先去除sign参数本身,然后去除值是空的参数p3,剩下p2=v2&p1=v1&method=cancel&pn=vn,然后按参数名字符升序排序,method=cancel&p1=v1&p2=v2&pn=vn.原创 2023-07-05 15:57:47 · 566 阅读 · 0 评论 -
全网最牛,打通接口自动化测试框架详细,一篇足够
接口自动化测试开展工具选择:RobotFramework:关键词驱动的自动测试框架基于 Web 的自动化测试平台(公司自主研发,成本较高,方便不懂编程也能使用)自动化测试工具有很多,每种工具都有各自的优缺点,选择适合自身实际情况的框架,落地实施才是重点。这里使用 Python + Requests + Pytest + Allure接口自动化测试实战名称:全国高校信息查询接口描述:用于查询全国高校信息名称类型是否必填描述typeString是name,根据名称查询。原创 2023-07-04 16:11:39 · 1871 阅读 · 2 评论 -
2023年,从初级岗进阶到中级测试工程师岗,突破内卷...
初级测试如何成长为中级测试工程师?35 岁之后的出路在哪里?前期发育不好,中期又干不过别人,所以问题集中爆发,导致境况急转直下,几年之内从风流潇洒的少年到焦头烂额的中年。于是就会出现很尴尬的局面,和你工作经验匹配的大厂高端技术、管理等岗位因为水平不够,面试进不去,小公司的初级测试岗位又不招你。加上一旦行业不景气,比如疫情原因大量裁员,然后被辞退、失业,找不到工作,成了经典反例。既然你看中了 IT 行业的高薪水入了坑,那么同时就需要付出相应的代价来适应这个行业的规则。原创 2023-07-03 15:57:21 · 240 阅读 · 0 评论 -
全网超全,Pytest自动化测试框架pytest-xdist分布式测试插件(实战)
平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完;当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间缩短一半,如果有10个小伙伴,那么执行时间就会变成十分之一,大大节省了测试时间;为了节省项目测试时间,10个测试同时并行测试,这就是一种分布式场景;原创 2023-06-29 16:09:06 · 577 阅读 · 0 评论 -
最细接口自动化测试yaml框架,超全详解,一篇打通...
YAML文件介绍YAML 是一种可读性非常高,与程序语言数据结构非常接近。同时具备丰富的表达能力和可扩展性,并且易于使用的数据标记语言。YAML全称其实是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写,所以它强调的是数据本身,而不是以标记为重点为什么要使用YAML文件?其实YAML文件也是一种配置文件,但是相较于ini,conf配置文件来说,更加的简洁,操作简单,还能存放不同类型的数据;而像ini存储的值就都是字符串类型,读取之后还要手动转换。原创 2023-06-28 16:20:43 · 579 阅读 · 0 评论 -
吐血整理,接口自动化测试-Config配置文件框架封装(实战)
configparser的介绍ConfigParser模块已在Python 3中重命名为configparser该模块定义了ConfigParser类。ConfigParser类实现一种基本的配置文件解析器语言,该语言提供的结构类似于 .ini 文件中的结构ini文件相关知识键值对可用 = 或者 : 进行分隔;section 的名字是区分大小写的,而 option 的名字是不区分大小写的;键值对中头部和尾部的空白符会被去掉;值可以为多行;配置文件可以包含注释,注释以 # 或者;为前缀;原创 2023-06-27 15:53:11 · 541 阅读 · 0 评论 -
从0到1精通自动化,接口自动化测试——数据驱动DDT实战
DDT简介名称:Data-Driven Tests,数据驱动测试作用:由外部数据集合来驱动测试用例的执行核心的思想:数据和测试代码分离应用场景:一组外部数据来执行相同的操作优点:当测试数据发生大量变化的情况下,测试代码可以保持不变实际项目:excel存储测试数据,ddt读取测试数据到单元测试框架(测试用例中),输出到html报告什么是数据驱动就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。说的直白些,就是参数化的应用1、DDT使用-传递基础数据类型。原创 2023-06-26 16:18:21 · 1059 阅读 · 0 评论 -
5年功能测试,“我“一进阶自动化测试拿到了24k的offer...
什么?已经做了好几年测试,一直停留在手工测试点点点的阶段?想要进阶,想要做自动化测试,该怎么学习,以及需要学些什么?测试人员的职业发展路线技术路线:功能测试–> 自动化测试–> 测试开发–> 测试架构师 / 业务专家 / 测试专家;管理路线:测试工程师–> 测试组长–> 测试经理–> 测试总监;现2023年,找工作比往年来说更难了,行业越来越卷,测试的招聘要求中几乎都会出现自动化测试的字眼,因此会自动化测试也是自身的核心竞争力。如何学习自动化测试?学习一门编程语言;学习自动化测试的思想;原创 2023-06-20 15:27:45 · 221 阅读 · 0 评论 -
2023年软件测试有前途吗?技术变革,测试人的进阶发展路线...
软件测试行业是否还有前景?如何直观的看待一个行业是否有前景,最好的方式便是看市场需求。需求量越大的岗位, 就有越多的选择机会,这点是毋庸置疑的。到了2023年,全球相应的软件测试市场,预计将出现14%的综合年度增长率。由此可见,未来IT行业的“抢人大战”,将会一触即发。软件测试的就业方向有哪些?软件测试发展方向呈现多元化。手机APP测试:手机APP分为android和ios个平台,平台不同,功能、兼容性、自动化框架不同,这几年移动互联网的爆发式发展让手机APP测试工程师需求大量增加。原创 2023-06-14 19:59:45 · 510 阅读 · 0 评论 -
技术水平低,就这还敢写自动化项目实战经验丰富?
今年部门要招两个自动化测试,这几个月我面试了几十位候选人。,面试中一问到元素定位、框架api、脚本编写之类的,很多候选人都对答如流。但是一问到实际项目,比如。大多数人都避重就轻、含糊其辞。究其原因,我认为是现在学习自动化的渠道很多,博客、书籍、视频等等,很多自动化的基础知识,很容易从公开的渠道获取到。然后。但是,一个很重要的事实是,。1、如何快速深入的了解移动互联网领域的应用 (答案:看http协议 restful api知识 json加1分)原创 2022-10-24 22:13:16 · 286 阅读 · 0 评论 -
全网最牛的robotframework自动化测试框架实战教程:创建及使用测试库
首先咱们先创建测试库测试库的实现可以是Python模块, 也可以是Python类.Python模块 Python类测试库通常在 Setting 表格中设置 Library 来导入, 库名称跟在 后面. 不同于大部分的其它数据, 库名称既是大小写敏感的, 也是空白敏感的. 如果一个测试库是在某个文件里的, 则必须指明路径. 测试结果==============================================================================Functest原创 2022-10-23 21:34:03 · 1389 阅读 · 0 评论 -
能涨薪3k的jmeter接口测试 接口自动化测试全套教程
作用描述:HTTP Cookie管理器可以像浏览器一样存储和发送cookie,如果你要发送一个带cookie的http请求,cookie manager会自动存储该请求的cookies,并且后面如果发送同源站点的http请求时,都可以用这个cookies。2.CSV——选择测试计划,右键-->添加-->元件-->CSV data Sat config。2.选择测试计划:右键-->添加-->配置元件-->HTTP cookie管理器。选择测试计划:右键-->添加-->配置元件-->HTTP请求默认值。原创 2022-10-21 19:57:59 · 2157 阅读 · 1 评论 -
csdn最牛最全面的JMeter实现接口自动化测试教程
不一样的接口自动化测试原创 2022-10-20 19:26:08 · 520 阅读 · 0 评论 -
用了10年Postman,不知道它的Mock功能也如此强大
最近在做一些app,前后端分离的开发模式是必须的。一直用的python flask做后端的快速POC,python本身就是一门胶水语言,开发起来方便快捷,而flask又是一个极简的webserver框架(比Django简洁)。但在这里推荐的是使用Postman,避免同时打开pycharm和webstorm,同时对于不懂python的同学也是福音。在整个开发过程中,前端或后端的延迟可能会阻碍相关团队有效地完成工作。原创 2022-10-18 19:34:32 · 405 阅读 · 0 评论 -
测试必要会的接口测试,不一样的接口测试学完就能涨薪3k。
不一样的接口测试原创 2022-10-11 19:27:57 · 3970 阅读 · 0 评论 -
全网最牛的使用python快速搭建接口自动化测试脚本实战总结
通常,在我们的项目中,我们的接口测试需求一般都是构造不同的请求数据,然后发送请求到接口,拿到接口返回后,对返回的字段进行提取和校验,最后将结果存放在excel表格中方便查阅。接口一般是http或https请求,发送的结构一般是json body或json结合一些文件附件,请求的返回结果都是json格式,我们的测试case可以用Excel或者数据库保存,结果可以保存在数据库或者直接存在Excel中,下面将具体拆解需求及逐步介绍实现过程。原创 2022-09-26 19:35:47 · 1018 阅读 · 1 评论