面试题总结

1. 测试流程

开始测试前准备-->需求分析-->测试设计(测试计划,测试用例)-->执行测试--> 提交BUG-->测试总结。

2. 测试计划的编写要素

why——为什么要进行这些测试

what—测试哪些方面,不同阶段的工作内容

when—测试不同阶段的起止时间

where—相应文档,缺陷的存放位置,测试环境等

who—项目有关人员组成,安排哪些测试人员进行测试

how—如何去做,使用哪些测试工具以及测试方法进行测试。

3. 测试原则

1.测试证明软件存在缺陷  2.不可能执行穷尽测试、  3.测试应尽早启动、尽早介入  4.缺陷存在群集现象(二八定律)

5.杀虫剂悖论  6.不同的测试活动依赖不同的测试背景  7.不存在缺陷的谬论

4. 测试方法

1、等价类划分法  2、边界值分析法  3、错误推测方法  4、因果图法  5、判定表驱动分析方法  6、正交实验设计方法

5. 测试分类

1、按开发阶段:单元测试、集成测试、系统测试、验收测试

2、按测试实施组织:α、β、第三方

3、按测试执行方式:静态测试、动态测试

4、按是否查看代码:黑盒测试、白盒测试、灰盒测试

5、按是否手工执行划分:手工测试、自动化测试

6、按测试对象划分:性能测试、安全测试、兼容性测试、文档测试、易用性测试(用户体验测试)、业务测试、界面测试、安装测试

7、按测试地域划分:本地化测试、国际化测试

6. 测试模型

7. 开发流程

8. 黑盒和白盒的区别

黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性, 只依据程式的需求说明书

来检查程式的功能是否满足它的功能说明。

白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及 相关信息,设计或选择测

试用例,对程式所有逻辑路径进行测试。

9. 测试计划中有哪些

1. 概述 1.1 编写目的  1.2 项目背景   1.3 项目质量目标  1.4 预期读者  1.5 参考资料

2. 测试环境  2.1 系统架构  2.2 软硬件环境要求   2.3 测试环境部署图

3. 测试规划  3.1 测试范围  3.2 测试工具   3.3 人员、角色及职责

4. 测试策略  4.1 系统框测试  4.2 业务流程测试  4.3 功能点测试  4.4 UI界面测试  4.5 性能测试  4.6 兼容性测试  4.7 安全测试

5. 测试进度安排

6. 工作汇报

10. 测试用例包含哪些

项目名称,软件版本,测试环境,设计人,最新更新日期

序号,模块,子模块,用例分类,用例标题,前提条件,操作步骤(输入值),期望结果,实际结果,备注,更新日期,用例级别,评审人

11. 测试用例需要详细到什么程度才是合格的

首先根据需求文档,概要设计,测试计划,测试方案细分出功能模块的测试项,再根据各种测试项,概要设计,详细设计以及测试方案中测试的覆盖率细分出测试子项,最后根据测试用例的设计方案来写测试方法

12. 缺陷报告包含哪些

(1)摘要:也就是缺陷的概要描述,要求简洁清晰;

(2)测试环境和测试数据信息,如果缺陷在特定的环境比如操作系统,浏览器才发生,或者使用特定的测试数据才发生,需要提供这些信息;

(3)测试步骤,重现这个缺陷的步骤

(4)预期结果,执行这些操作步骤时,系统预期的表现;

(5)实际结果,执行这些操作步骤时,系统实际的表现;

(6)可添加附件,如屏幕截图

13. 测试评审:(评审分类  评审内容  评审结束)

1、评审分类

测试组内部的评审:测试部门成员参与

项目组内部的评审:项目经理、产品人员、开发人员和测试人员参与

2、评审内容

用例设计的结构安排是否清晰、合理,是否利于高效对需求进行覆盖。

优先级安排是否合理。

是否覆盖测试需求上的所有功能点

用例是否具有很好可执行性。例如用例的前提条件、执行步骤、输入数据和期待结果是否清晰、正确;期待结果是否有明显的验证方法

是否已经删除了冗余的用例

是否包含充分的负面测试用例。充分的定义,如果在这里使用2&8法则,那就是4倍于正面用例的量,毕竟一个健壮的软件,其中80%的代码都是在“保护”20%的功能实现

是否从用户层面来设计用户使用场景和使用流程的测试用例

是否简洁,复用性强。例如,可将重复度高的步骤或过程抽取出来定义为一些可复用标准步骤。

3、评审结束标准

1)评审过程中收集相关人员的反馈信息(即问题记录清单),并在此基础上进行测试用例更新,直到评审通过;

附:测试用例评审检查项:

1)测试用例是否按照公司定义的模板进行编写的;

2)测试用例的本身的描述是否清晰,是否存在二义性;

3)测试用例内容是否正确,是否与需求目标相一致;

4)测试用例的期望结果是否确定、唯一的;

5)操作步骤应与描述是否相一致;

6)测试用例是否覆盖了所有的需求;

7)测试设计是否存在冗余性;

8)测试用例是否具有可执行性;

9)是否从用户层面来设计用户使用场景和业务流程的测试用例;

10)场景测试用例是否覆盖最复杂的业务流程;

11)用例设计是否包含了正面、反面的用例;

12)对于由系统自动生成的输出项是否注明了生成规则;

13)测试用例应包含对中间和后台数据的检查;

14)测试用例应有正确的名称和编号;

15)测试用例应标注有执行的优先级;

16)测试用例包含相关的配置信息:测试环境、数据、前置测试用例、用户权限等;

17)每个测试用例步骤应<=15 Step。

14. 水杯  电梯 朋友圈点赞  视频播放  支付的测试用例的设计点有哪些

详情请看:https://www.jianshu.com/p/8f4ae0498fbc

15. 测试发现bug开发不认为是bug的时候

1、将问题提交到缺陷管理库里面进行备案。

2、要获取判断的依据和标准:

根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;

如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;

根据用户的一般使用习惯,来确认是否是缺陷;

3、与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;

4、合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。

等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

16. Linux命令 

shutdown -h now 关闭系统   init 0 关闭系统   telinit 0 关闭系统   shutdown -h hours:minutes & 按预定时间关闭系统 

shutdown -c 取消按预定时间关闭系统   shutdown -r now 重启  reboot 重启  logout 注销 

文件和目录 

cd /home 进入 '/ home' 目录'   cd .. 返回上一级目录   cd ../.. 返回上两级目录   cd 进入个人的主目录   cd ~user1 进入个人的主目录 

cd - 返回上次所在的目录   pwd 显示工作路径   ls 查看目录中的文件   ls -F 查看目录中的文件   ls -l 显示文件和目录的详细资料 

ls -a 显示隐藏文件   ls *[0-9]* 显示包含数字的文件名和目录名   tree 显示文件和目录由根目录开始的树形结构

lstree 显示文件和目录由根目录开始的树形结构  mkdir dir1 创建一个叫做 'dir1' 的目录'   mkdir dir1 dir2 同时创建两个目录 

mkdir -p /tmp/dir1/dir2 创建一个目录树   rm -f file1 删除一个叫做 'file1' 的文件'   rmdir dir1 删除一个叫做 'dir1' 的目录' 

rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容   rm -rf dir1 dir2 同时删除两个目录及它们的内容 

mv dir1 new_dir 重命名/移动 一个目录   cp file1 file2 复制一个文件   cp dir/* . 复制一个目录下的所有文件到当前工作目录 

cp -a /tmp/dir1 . 复制一个目录到当前工作目录   cp -a dir1 dir2 复制一个目录   cp -r dir1 dir2 复制一个目录及子目录

ln -s file1 lnk1 创建一个指向文件或目录的软链接   ln file1 lnk1 创建一个指向文件或目录的物理链接  touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm) 

file file1 outputs the mime type of the file as text   iconv -l 列出已知的编码 

17. Adb命令    查看日志  (日志级别)

adb root  获取 root 权限。  adb sideload  adb shell ps 打印进程状态。

adb shell top 展现上层 CPU 进程信息。  adb shell getprop 获取 Android 系统服务属性

adb shell setprop 设置服务属性。  adb shell dumpsys  获取系统数据。

adb logcat  打印日志文件  adb shell ip  主要用于显示一些数据

adb shell netstat 主要用于网络统计。  adb shell ping 没啥好说的,和 PC 的 ping 命令一样的。

adb shell netcfg 通过配置文件配置和管理网络连接。  adb shell cp 字面意思,很好理解,复制。

adb shell pwd 定位当前的操作位置  adb shell mv 移动或者更名文件

adb shell mkdir 创建一个文件夹  adb shell rm 删除文件或者目录

adb shell ls 列出目录内容。  adb shell pm clear 清除应用缓存。

adb shell pm path 打印 apk 的路径。  adb usb 设置设备以 USB 形式连接 PC

adb kill-server 终止 adb 进程。  adb forward 端口映射,将 PC 端的某端口数据重定向到手机端的一个端口。

adb devices 主要是用于打印当前连接的所有模拟器或者设备

18. Monkey命令  和日志区别

adb  shell monkey -v 10 执行monkey测试10次  adb shell monkey -p 用此参数指定一个或多个包

adb shell monkey 100 >c:/log/b.txt  将log信息写到文档中

adb shell monkey -p com.example.login --throttle 300 100  表示执行100个伪随机用户事件流,事件间隔为300毫秒

--pct-touch  触摸事件   adb shell monkey -f  后接测试脚本名

adb shell monkey -s  随机运行    adb shell monkey --throttle  固定时间间隔

19. 查看日志的前10行后5行的命令

# head -n 10 /etc/profile   # tail -n 5 /etc/profile

20. Bug生命周期

提交缺陷:测试人员提交新的缺陷,并对该缺陷进行描述,分级。操作,预期结果。

分派缺陷:开发人员打开缺陷,但是该模块并不是自身开发,可以将缺陷重现指派给对应模块开发人员。

确认缺陷:开发人员根据缺陷描述进行重现,分析缺陷。确认是否为软件缺陷。

不予解决:开发人员认为不是缺陷,标记为不予解决。指派给产品进行分析是否为缺陷。

处理缺陷:开发人员对缺陷进行处理,解决缺陷所出现的问题。

回归缺陷:当缺陷被解决时,由测试人员对缺陷进行回归测试,确认该缺陷被解决。

关闭缺陷:缺陷被解决,已进行回归测试且结果为PASS。

21. Bug的状态和优先级

严重等级:

第一级(blocker): 引起喜欢作系统“挂起”或“崩溃”的错误;

第二级(critical): 引起软件本身“挂起”或“崩溃”的错误;

第三级(major): 不能完成软件说明书定义的功能的错误;

第四级(normal): 程序所完成的功能与软件说明书定义不符的错误;

第五级(minor) : 显示方面的错误;

第六级(trivial) : 其它“轻微”的错误(如文本差错);

第七级(enhancement):增强或者改进。

优先级:

1.立即解决(Resolve Immediately)缺陷必须被立即解决。

2.正常排队(Normal Queue)缺陷需要正常排队等待修复或列入软件发布清单。

3.不紧急(Not Urgent)缺陷可以在方便时被纠正。

22. Bug的分类

1、代码错误  2、设计缺陷  3、界面优化  4、性能问题  5、配置相关

6、安装部署  7、安全相关  8、标准规范  9、测试脚本

10、其他划分:功能类、界面类、性能类、易用性类、兼容性类、其他

23. Chareles的弱网测试

上方工具栏的代理—限流设置—启用限流

24. Chareles的断点替换(request response)

1.选择你要设置的断点接口  2.右击接口,选择断点  3.点击代理->断点设置

4.双击链接,进行配置  5.把参数删掉,换成*,可修改请求可修改返回

6.修改我们需要的数据,修改完成后点击执行即可

25. chareles的对app端抓包的步骤

设置代理

(1)查看默认端口:Proxy->Proxy Settings  在这个页面会看到HTTP Proxy的默认端口是8888

(2)查看当前电脑的IP:Help->Local IP Address,在这个页面会看到本机IP

(3)手机上设置代理(记住手机跟电脑要在同一个网络)

手机连接到Charles时会弹出提示框是否连接,点击Allow允许即可

完成后就可以看到已经能抓到http请求的数据了

26. Jmeter的接口测试

1测试计划中添加线程租 

2在线程租中添加http请求 在http请求中需要填入 

3在线程中添加查看结果树

27. Jmeter的压力测试 打压 1000

1测试计划中添加线程租 

2在线程租中添加http请求 在http请求中需要填入 

3. 在线程租中进行修改 并发数量 (修改线程数量 修改循环次数 )

4.在线程组添加聚合报告

28. Web端的性能指标

响应时间(客户端向服务端的请求时间,服务端对数据库的请求时间,服务端将结果展现到页面的时间)

响应时间2 5 8原则   

吞吐量:指的是在一次性能测试过程中网络上传输的数据量的总和.吞吐量/传输时间,就是吞吐率.

TPS:每秒处理事务能力

并发数: 单用户的多次操作

多用户的单次操作

点击率:每秒钟用户向WEB服务器提 交的HTTP请求数.

资源使用率:cpu  <80%  内存  <80%  io <40    网络 <30%

29. App端的性能指标

Cpu内存  流量  电量 启动时间  帧率     cpu  <80%内存  <80% 

电量的损耗:    流量的损耗:

30. Jmeter的负载测试

1测试计划中添加线程租

2在线程租中添加http请求 在http请求中需要填入 

3. 在线程租中进行修改 并发数量 (修改线程数量 修改循环次数 )

4.在线程组添加聚合报告

31. Jmeter的脚本录制(web /app)

通过Badboy来录制脚本(pc)

1.打开badboy ,点击红色按钮,在地址栏输入被测项目地址。

录制完后,点击旁边的黑色按钮结束录制。

2.选择文件,Export to Jmeter 保存.jmx类型文件

3.打开Jmter,打开“文件”->‘打开’选择刚保存的.jmx类型文件。

1.打开jmeter,创建一个线程(移动端)

2.添加代理服务器,点击 “工作台”,然后右键,根据如下图步骤,添加一个代理服务器。

3.设置端口以及录制地址    4.通过模拟机配置端口号就可以完成链接

32. TPS和qps区别

tps可以理解为是每秒对事务的处理的能力  qps是每秒对服务器的查询能力

性能测试web端和app端测试

33. 负载和压力区别

负载测试是从并发量维度出发,不断增加并发量的情况下,系统的性能指标;

压力测试是从访问时间维度出发,在并发量一定的情况下,不断增加连续访问的时间,系统的性能指标;

34. Mysql的 inner join  left join right join  full join  区别

左连接:LEFT JOIN   左连接:表emp是主表,因此查询结果是显示emp(主表)的全部信息和sal(附表)与emp相关的信息。

右连接:RIGHT JOIN   右连接:表sal是主表,因此查询结果显示sal(主表)的全部信息和emp(附表)与sal想关的信息。

内连接:INNER JOIN   内连接:显示的是连个表相关的信息

全连接:FULL JOIN  全连接:显示两个表所有的信息。

35. MySQL的数据库优化

1.优化索引、SQL 语句、分析慢查询;

2.设计表的时候严格根据数据库的设计范式来设计数据库;

3.使用缓存,把经常访问到的数据而且不需要经常变化的数据放在缓存中,能节约磁盘 IO

4.优化硬件;采用 SSD,使用磁盘队列技术(RAID0,RAID1,RDID5)等

5.采用 MySQL 内部自带的表分区技术,把数据分层不同的文件,能够提高磁盘的读取效率;

6.垂直分表;把一些不经常读的数据放在一张表里,节约磁盘 I/O;

7.主从分离读写;采用主从复制把数据库的读操作和写入操作分离开来;

8.分库分表分机器(数据量特别大),主要的的原理就是数据路由;

9.选择合适的表引擎,参数上的优化

10.进行架构级别的缓存,静态化和分布式;

11.不采用全文索引;

12.采用更快的存储方式,例如 NoSQL 存储经常访问的数据。

36. Mysql的存储原理

1、存储过程能实现较快的执行速度

2、存储过程允许标准组件是编程。

3、存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。

4、存储过程可被作为一种安全机制来充分利用。

5、存储过程能够减少网络流量

37. 编写http接口的性能测试,和测试过程中的关注点 流程

性能测试流程

1.业务知识理解

2.工具的选择(jmeter)

3.设计性能测试场景(由需求或测试经理设计)

3.指定测试方案并评审

4.性能测试环境准备(注:独立于功能测试环境,使用局域网排除网络影响)

5.编写和调优性能测试脚本(有接口测试文档)//(无接口测试文档:fiddle抓包、badboy、jmeter代理录制---关联(把上一个请求的结果送给下一个请求))

6.执行性能测试,收集测试结果

7.分析测试结果-----系统的性能优化

38. http和https的区别

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

39. OSI和tcp/IP的区别

(1)OSI和TCP/IP的相同点是二者均采bai用层次结构du,而且都是按功能分层。

OSI和TCP/IP的不同点:

(1).OSI分七层,自下而上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP分四层:网络接口层、网际层、传输层和应用层。

(2).OSI先有模型,再有协议,比较适合理论上探讨。TCP/IP先有协议,再有模型,已得到广泛的实际应用。

40. TCP 和UDP 的区别

1、连接方bai面区别

TCP面向连接(如du打电话要先拨号建立连接)。

UDP是无连接的zhi,即发送数据dao之前不需要建立连接。

2、安全方面的区别

TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。

UDP尽最大努力交付,即不保证可靠交付。

3、传输效率的区别

TCP传输效率相对较低。

UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。

4、连接对象数量的区别

TCP连接只能是点到点、一对一的。

UDP支持一对一,一对多,多对一和多对多的交互通信。

41. Get/post的区别

“1.Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。2.Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。

  1、GET使用URL或Cookie传参。而POST将数据放在BODY中。

  2、GET的URL会有长度上的限制,2kb,则POST的数据则可以非常大。

  3、POST比GET安全,因为数据在地址栏上不可见。

  4、一般get请求用来获取数据,post请求用来发送数据。

42. Web测试和app测试的区别

43. 给你一个网站你如何张开测试

性能测试

(1)连dao接速度测dao试:用户连接到电子商务网版的速度与上权网方式有关,他们或许是电话拨号,或是宽带上网,打开速度越快的网站,越受用户喜爱。

(2)负载测试:负载测试是在某一负载级别下,检测电子商务系统的实际性能。允许多少个用户同时在线,可以通过相应的软件在一台客户机上模拟多个用户来测试负载。

(3)压力测试:压力测试是测试系统的限制和故障恢复能力,也就是测试电子商务系统会不会崩溃。

安全性测试

对网站的安全性(服务器安全,脚本安全)可能有的漏洞测试,攻击性测试,错误性测试。对电子商务的客户服务器应用程序、数据、服务器、网络、防火墙等进行测试。用相对应的软件进行测试。

基本测试

包括色彩的搭配,连接的正确性,导航的方便和正确,CSS应用的统一性。

网站优化测试

(1)引擎优化测试:好的网站是看它是否经过搜索引擎优化了,网站的架构、网页的栏目与静态情况等。

(2)用户优化测试:用户来到网站能能够在3-5次,找到其需要的内容。方便用户的网站倍受用户的亲昵。

功能实现:网站现有版本,需求是否完全实现。满足需求的网站才是有用的网站。

44. 支付模块的测试如何展开

1、单元测试要写好

2、自己真实支付测试

3、接口自动化测试,由于要真实支付只能发起预支付,但不能付款。(测试环境可以自己写套假支付回调接口来改变支付结果来方便接口自动化测试)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339