测试开发知识点(五)

传送门

测试开发知识点(一)
测试开发知识点(二)
测试开发知识点(三)
测试开发知识点(四)
测试开发知识点(五)

Linux系统

Linux学习资料

243、 Linux入门教程

https://www.w3cschool.cn/linux/

244、 Linux命令大全

https://www.w3cschool.cn/linux/linux-command-manual.html

常用的Linux命令

245、 查看当前的路径是啥?

pwd

246、 查看当前路径下面的所有文件详细列表?

ls -l

247、 创建downloads目录

mkdir downloads

248、 进入到downloads目录(掌握)

cd downloads

249、 回到父目录

cd ..

250、 回到父目录的父目录

cd ../..

251、 查找(搜索)文件(掌握)

在当前路径(使用点号表示)下查找文件名包含test的所有文件?

252、 切换到根目录(顶层目录)下面?

cd /

253、 在根目录(/)下面查找出文件名为hosts的所有文件

254、 移动目录或文件(掌握)

将test0106这个目录移动到/home/scott/Desktop

255、 重命名目录或文件(掌握)

将test0106这个目录重命名为test20180106

256、 复制文件(掌握)

将/etc/hosts文件复制到/home/scott/Desktop里面

257、 删除目录或文件(掌握)

将/home/scott/Desktop里面的hosts备份文件删除

# rm命令
rm -f 文件名
rm -rf 目录名

258、 查看磁盘空间

df -h

259、 查看服务器的性能情况(cpu,内存占用情况以及磁盘读写)

top
# 退出查看使用q

260、 tar命令

# 把scott账号的主目录打包
cd /home/
tar -czvf scott.tar.gz scott
# 解压(解包)
tar -xzvf jdk-8u181-linux-i586.tar.gz

261、 检查tomcat有没有被启动(掌握)

ps -ef | grep tomcat
# 该指令可以查看到tomcat进程的编号(pid)

262、 把这个tomcat进程停掉

kill -9 {tomcat进程的编号}

263、 查看8080端口号没有有被占用(掌握)

netstat -an | grep 8080

264、 查看tomcat的启动有没有完成?

# 使用tail命令查看实时日志
cd /opt/tomcat8/logs
tail -f catalina.out

265、 查看命令的使用方法

比如:

man find

266、 设置文件权限(掌握)

chmod

267、 查看系统版本

uname -a

268、 检查网络连接是否正常(掌握)

ping -c {次数} {目标服务器ip地址}

269、 查看端口的占用情况(掌握)

netstat -an

270、 查看所有的进程(掌握)

ps -ef

271、 杀进程

kill -9 {进程号}

272、 查看IP地址(掌握)

ifconfig
# 类似windows命令行窗口里面的ipconfig

273、 tomcat的启动和关闭

cd /opt/tomcat8/bin
./startup.sh
./shutdown.sh

【参考】Linux下配置Tomcat为系统服务并开机自启动
https://www.linuxidc.com/Linux/2018-08/153705.htm
【参考】tomcat在linux下自启动
http://www.cnblogs.com/dragonsuc/p/6094468.html

274、 使用more命令查看日志文件

# 不要用vi打开,可能导致后台写日志失败
# more 用来查看比较大的文件(支持分屏查看,f:往后翻,b:往回翻,q:退出)
cd /opt/tomcat8/logs
more catalina.out
# cat一般用来查看小文件(内容比较少),more命令可以用来查看大文件

275、 用来查看当前路径下的所有文件(包括隐藏文件)(掌握)

ls -al

276、 创建一个空文件

比如:

touch test.sh

277、 过滤

grep

278、 查看磁盘列表

fdisk -l

279、查看磁盘空间

df  -h

280、查看文件(夹)大小

du -sh {文件(夹)名}

281、设置环境变量

export JAVA_HOME=/opt/jdk8
export PATH=$JAVA_HOME/bin:$PATH

282、 环境变量生效

source /etc/profile

283、查看环境变量

echo  $PATH

284、 vi编辑器里面的常用命令

命令模式:

序号 输入 作用
1 :w 保存不退出
2 :w! 强制保存不退出
3 :wq! 强制保存并退出
4 :wq 保存并退出
5 :q! 退出不保存
6 dd 删除光标所在的行
7 i 进入编辑模式(在当前位置插入字符)
8 Shift + i 进入编辑模式(在当前行的开始插入字符)
9 o 进入编辑模式(在当前行的下方插入内容)
10 Shift + o 进入编辑模式(在当前行的上方插入内容)
11 :set nu 显示行号
12 :set nonu 不显示行号
13 x 删除光标位置的字符(还是在命令模式)
14 Shift+r 目的:替换光标位置的字符序列(会进入到编辑模式)
15 r 目的:替换光标位置的单个字符(还是在命令模式)
16 :set ic 设置不区分大小写
17 :set noic 设置区分大小写
18 /keyword 搜索关键字(回车,查找下一个按n,查找上一个按N)
19 Shift + g 将光标移动到最后一行
20 gg 将光标移动到第一行
21 $ 将光标移动到行末
22 0 将光标移动到行首

编辑模式:

序号 输入 作用
1 Esc 回到命令模式

285、 以系统管理者的身份执行指令

sudo {指令}

【参考】xxx 不在 sudoers 文件中。此事将被报告
https://www.cnblogs.com/liuming1992/p/4882595.html

286、 切换账号

su - {账号}

Linux服务器性能监控

287、 监控Linux服务器的性能

【参考】nmon的安装及使用
https://www.cnblogs.com/mululu/p/6398483.html
【参考】一篇文章学会使用 nmon
https://www.sohu.com/a/219012698_151779

虚拟机软件VMware

288、 给虚拟机安装Linux系统

【参考】“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
https://www.cnblogs.com/tangbomao/p/6649051.html
【参考】vmware虚拟机NAT配置静态IP教程详解
https://m.jb51.net/article/99265.htm

其他

289、 Linux干货分享

【参考】Linux常用命令
https://mp.weixin.qq.com/s?__biz=MjM5MDg2NDk2Mw==&mid=2654485268&idx=3&sn=f7ebb026b48f1b237efce00dafe0b32a


Python自动化

295、 Python基础

入门教程:
http://www.runoob.com/python/python-tutorial.html

296、代码编辑器

1)设置python解释器的安装路径

D:\Python27\python.exe

2)设置编码为utf8(使用utf8编码存储py文件)

【参考】Python 中文编码
https://www.runoob.com/python/python-chinese-encoding.html

297、 基础语法

1)Python的代码语句不需要使用分号结束
2)命名的时候可以使用字母、数字和下划线,不能使用特殊字符(比如空格),也不能使用python关键字
3)命名函数的时候使用小写字母,单词和单词之间使用下划线隔开
4)缩进:单元(比如函数,循环,分支结构,python类)里面的代码语句要使用缩进(4个空格)
5)删除缩进:写好一个单元(比如函数,循环,分支结构,python类)后,按回车键,新的代码行会自动缩进,需要删除缩进
6)空行(没有缩进):函数之间使用1个空行隔开;Python脚本的最后要添加1个空行;函数定义开始和结束的地方空两行,Python类定义开始和结束的地方空两行
7)空格:运算符两边要有空格;写单行注释的时候,#后面要跟1个空格
8)逗号:分隔符,后面要有空格
9)单引号(表示单行文本)
10)双引号(表示单行文本)
11)三引号的作用(多行文本和多行注释)
12)单行注释(使用#开头)
13)多行注释(使用三引号开头,三引号结束)
14)反斜杠:表示转义;将1行代码拆成多行的时候需要使用反斜杠
15)[]表示数组的开始和结束
16)()表示元组的开始和结束
17){}表示字典的开始和结束

【参考】代码命名大小写规范(Java,Python)
https://blog.csdn.net/quiet_girl/article/details/73896791

298、编码问题

【参考】Python 字符串前面加u,r,b的含义
https://www.cnblogs.com/liangmingshen/p/9274021.html
【参考】Python中文乱码
https://www.jianshu.com/p/220ee0f219c6
【参考】UnicodeDecodeError: 'ascii' codec can't decode解决
http://www.cnblogs.com/angellst/p/8783190.html

299、 标准数据类型

number(数字),str(字符串),list(列表),tuple(元组),dictionary(字典)

提问:元组和列表的区别

300、布尔值和空值

直接量 含义
True 真,比如:a = True
False 假,比如:a = False
None 空,比如:a = None

301、转义字符

转义字符 含义
\n 换行
\r 换行(回车),适用Linux系统
\t 横向制表符

301、 变量(变量的定义和作用域)

注意:Python里面定义变量不需要声明变量的类型

# 定义一个整数
a = 1
# 定义一个小数
b = 3.142
a = b
print(a)
# 定义一个文本
s = u'测试虾'
# 定义一个列表
arr = [1, 2, 3]
# 定义一个元组
x = (1, 2, 3)
# 定义一个字典,表示刘亦菲
lyf = {'empno': 1001, 'ename': u'刘亦菲', 'male': False}

302、__name__变量

【参考】python中__name__的使用
https://www.cnblogs.com/1204guo/p/7966461.html
【参考】浅析python中__name__ = '__main__' 的作用
https://www.cnblogs.com/alan-babyblog/p/5147770.html

303、运算符

赋值运算符,算术运算符,逻辑运算符,比较运算符,位运算符

运算符 作用
+ 加运算;连接文本;合并数组(元组)
% 取余;连接元组里面的每个元素
and 并且,逻辑与
or 或者,逻辑或
not 逻辑非
is 比较两个对象的地址是否相同
in 源字符串是否包含指定的文本,列表里面是否包含指定的对象

304、字符串连接

1)使用逗号(会产生空格)
2)使用加号
注意:使用加号连接整数和文本的话,会发生错误
3)直接拼接(字面量)
4)使用%(连接1个或多个文本),支持不同类型的数据
5)使用format函数(连接1个或多个文本),支持连接不同类型的数据
6)使用join函数(数组或元组)

# -*- coding: UTF-8 -*-
a = 'hello'
b = 'python'
# 使用加号连接
c = a + b
# 使用逗号连接
print a, b
# 直接拼接字符串常量
# print('abc''world')
print('hello%x%X' % (90, 90))
c = 'hello{0}{1}'.format(a, b)
print(c)
a = ('abc', 'hello', '3')
b = ('python', 'test')
c = a + b
print(''.join(c))

【参考】python字符串
https://www.runoob.com/python/python-strings.html
【参考】python字符串拼接
https://www.cnblogs.com/yexuesong/p/9232349.html

305、 函数

函数的定义和调用

306、获取键盘输入的数据

Python函数 说明
raw_input 适用python2
input函数 适用python3
# -*- coding: UTF-8 -*-

x = raw_input('请输入x:')
y = raw_input('请输入y:')
print('{0}+{1}={2}'.format(x, y, int(x) + int(y)))

307、数据类型转换函数

Python函数 作用
int(value) 将整数格式的文本(字符串)转成整数
str(value) 将整数转成文本(字符串)

308、 数组(增、删、改、查)

arr = list([1, 5, 3])
arr.append(2)
arr.append('hello')
print(arr)
arr.remove(3)
print(arr)
# arr.sort()
# arr.reverse()
# print(arr)
#打印数组的大小
print(len(arr))

309、数组操作(合并,倒序,排序,遍历,求和,求最大值,求最小值)

# 遍历
for i in arr:
    print(i)
python函数 作用
sum(arr) 求和
max(arr) 求最大值
min(arr) 求最小值
sort(arr) 排序(从小到大)
len(arr) 计算数组的大小

310、字典(遍历,添加键值对,修改键的值,获取键的值,删除键值对)

# 遍历字典(获取所有的键和值)
for key in dict:
    print('%s:%s' % (key, dict[key]))

311、日历,日期和时间

【参考】Python 日期和时间
https://www.runoob.com/python/python-date-time.html
【参考】python中time模块的源码在哪里丫??
https://segmentfault.com/q/1010000012132002/a-1020000012133135

312、 分支结构

使用python计算个人所得税:

//未完成

313、 循环结构(循环嵌套)

s = 0
# for i in range(0, 100, 2):
for i in range(1, 101):
    s += i
print(s)
x = list(range(5, 10))
print(x)

【参考】python2和python3中的range区别
https://www.cnblogs.com/liuchunxiao83/p/6403709.html

使用python打印乘法口诀表:

//未完成

314、循环控制(break, continue)

315、文件读取

【参考】open函数
http://www.runoob.com/python/python-func-open.html
【参考】python读取文件时提示UnicodeDecodeError: 'gbk' codec can't decode
https://www.cnblogs.com/wx2017/p/9035765.html

316、 类和对象

定义一个Python父类:

# -*- coding: UTF-8 -*-

from time import time


class Employee:
    """
    员工类
    """
    def __init__(self,empno,ename,hiredate,age=25, male=False, **kw):
        """
        构造方法
        :param empno: 工号
        :param ename: 姓名
        :param hiredate: 入职时间
        :param age: 年龄
        :param male: 性别
        :param kw: 其他属性
        """
        self.empno = empno
        self.ename = ename
        self.age = age
        self.male = male
        self.hiredate = hiredate
        self.kw = kw

    def show(self):
        print('%d,%s,%d,%s,%s,%s' %
              (self.empno, self.ename, self.age, self.male, self.hiredate, self.kw))


if __name__ == '__main__':
    zs = Employee(1001, 'zhangsan', 23, True, time())
    zs.age = 26
    zs.show()

定义一个Python子类:

from employee import Employee
from time import time


class PM(Employee):
    def __init__(self, empno, ename, hiredate, exp, bonus, age=23, male=False, **kw):
        Employee.__init__(self, empno, ename, hiredate, age, male)
        self.exp = exp
        self.bonus = bonus
        self.kw = kw

    def show(self):
        print('%d,%s,%d,%s,%s,%f,%f,%s' % (self.empno, self.ename,
                                           self.age, self.male,
                                           self.hiredate, self.exp,
                                           self.bonus, self.kw))


if __name__ == '__main__':
    wangwu = PM(1003, 'wangwu', time(), 3.0, 5000.0)
    wangwu.show()

317、Python参数

1)固定参数(必填参数,不能为空)
2)默认值参数(可以不填)
3)可变参数(可以接收多个参数,比如:*args)
4)关键字参数(可以接收多个键值对,比如:**kw)

def add(*args):
    s = 0
    for i in args:
        s += i
    return s


if __name__ == '__main__':
    print(add(1, 2, 3, 4, 5))

【参考】Python传入参数的几种方法
https://blog.csdn.net/abc_12366/article/details/79627263

318、模块(python文件或包)

导入模块的语法格式:
1)import 模块名

import employee

2)from 模块名 import 函数名

from time import time

3)from 模块名 import 类名

from employee import Employee

4)from 模块名 import *

from employee import *

5)from 包名 import 模块名

from day02 import employee

6)from 包名 import *

from day02 import *

319、pymssql框架

【参考】python连接sqlserver数据库
https://www.cnblogs.com/toheart/p/9802990.html

320、pymysql框架(增、删、改、查)

# -*- coding: UTF-8 -*-
import pymysql


# 连接数据库
conn = pymysql.connect('192.168.1.124', 'root',
                       '123456', 'weather', charset='utf8', port=3306)
# 获取游标
cursor = conn.cursor()
sql2 = "insert into emp values(1003,'测试虾','男','2019-08-26')"
cursor.execute(sql2)
conn.commit()
sql = 'select * from emp'
# 执行查询操作
cursor.execute(sql)
# 获取查询结果
rows = cursor.fetchall()
for row in rows:
    print('%d,%s,%s,%s' % (row[0], row[1], row[2], row[3]))

# 关闭数据库连接
conn.close()

321、异常处理

【参考】python3连接mysql数据库及异常信息处理
https://blog.csdn.net/lovelong8808/article/details/77193752

322、 requests框架

1)安装requests框架

image.png

2)使用requests框架发送http请求

# -*- coding: UTF-8 -*-

import requests

resp = requests.get('https://www.51job.com')
# 打印响应头
# print(resp.headers)
# 获取响应头
headers = resp.headers
# 遍历响应头(字典)
for key in headers:
    print('%s:%s' % (key, headers[key]))
# 打印响应数据
# print(resp.content.decode('gbk'))

参考:
https://www.cnblogs.com/ranxf/p/7808537.html
https://www.cnblogs.com/lilinwei340/p/6417689.html

323、json框架

函数 作用
dumps(obj) 将对象或数组转成json格式的字符串
loads(text) 将json格式的字符串转成对象或数组
# -*- coding: UTF-8 -*-

import json
import requests

resp = requests.get('http://v.juhe.cn/weather/index?'
                    'format=2&cityname=%E4%B8%8A%E6%B5%B7&'
                    'key=f3068259596b5302176417cea94e0b65')
# 将json格式的字符串解析成字典
weather = json.loads(resp.content)
# 获取result属性的内容
result = weather['result']
# 获取today属性的内容
today = result['today']
# 获取temperature属性的内容
print(u'今天的温度:%s' % today['temperature'])
# 获取future属性的内容
future = result['future']
# 获取明天的数据
tomorrow = future[1]
# 获取明天的temperature
print(u'明天的温度:%s' % tomorrow['temperature'])

324、 unittest框架

unittest 官方文档
https://docs.python.org/3.7/library/unittest.html

1)验证的方法

import unittest


class FirstTest(unittest.TestCase):

    def test_f(self):
        x = 'abc'
        y = 'helloabc'
        z = None
        # self.assertIs(x, y)
        self.assertIsNone(z)
        self.assertIn(1, [1, 2, 3])
        self.assertTrue(1 in [1, 2, 3])
        self.assertTrue(x in y)
        self.assertIsInstance((1, 2, 3), tuple)
        self.assertAlmostEqual(10/3.0, 3.3333333)


if __name__ == '__main__':
    unittest.main(verbosity=2)

【参考】Python必会的单元测试框架 —— unittest
https://www.jianshu.com/p/38948d0d73f5
【参考】python_unittest详解
https://www.jianshu.com/p/8e22c1213260

2)运行python测试用例

import unittest


class SecondTest(unittest.TestCase):

    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FOO')

    def test_isupper(self):
        self.assertTrue('FOO'.isupper())
        self.assertFalse('Foo'.isupper())

    def test_split(self):
        s = 'hello world'
        self.assertEqual(s.split(), ['hello', 'world'])

    def test_exception(self):
        with self.assertRaises(ZeroDivisionError):
            print(1/0)


if __name__ == '__main__':
    unittest.main(verbosity=2)

3)运行python测试集

if __name__ == '__main__':
    # 构造测试套件
    suite = unittest.TestSuite()
    suite.addTest(FirstTest('test_f'))
    suite.addTest(SecondTest('test_upper'))
    # 执行测试
    runner = unittest.TextTestRunner(verbosity=2)
    runner.run(suite)

【参考】测试套件(TestSuite)
https://www.cnblogs.com/eastonliu/p/9145255.html

4)unittest注解
@classmethod, @parameterized

5)参数化测试

import unittest
from parameterized import parameterized


class SumTest(unittest.TestCase):
    @parameterized.expand([
        (6, [1, 2, 3]),
        (0, []),
        (6.142, [1, 2, 3.142]),
        (2, [1, False, True])
    ])
    def test_sum(self, expected, arr):
        self.assertAlmostEqual(sum(arr), expected)

    @parameterized.expand([
        (1, 2, 'abc'),
        (1, 2, None)
    ])
    def test_exception(self, *arr):
        with self.assertRaises(TypeError):
            sum(arr)


if __name__ == '__main__':
    unittest.main(verbosity=2)

325、 selenium框架

1)安装selenium框架

image.png

安装路径如下:

D:\Python27\Lib\site-packages\selenium

2)安装火狐浏览器的驱动

安装路径如下:

C:\Windows\System32\geckodriver.exe

3)使用selenium操作浏览器

# -*- coding: UTF-8 -*-
from selenium.webdriver import *
from time import *

# 创建一个驱动
driver = Firefox()
# 最大化窗口
driver.maximize_window()
# 设置最大等待时间
driver.implicitly_wait(10)
# 打开搜狗的网页
driver.get('https://www.sogou.com')
# 点击搜索框
driver.find_element_by_id('query').click()
# 输入关键字
driver.find_element_by_id('query').send_keys(u'刘亦菲')
# 点击搜索按钮
driver.find_element_by_id('stb').click()
# 等待3秒
sleep(3)
# 关闭浏览器
driver.close()

【参考】Selenium-Python中文文档
https://selenium-python-zh.readthedocs.io/en/latest/api.html
【参考】Selenium-Python官方文档
https://seleniumhq.github.io/selenium/docs/api/py/api.html
【参考】Python+selenium 自动化-selenium的版本查看和升级
https://blog.csdn.net/qq_38161040/article/details/84134291

326、 爬虫(了解)

http://www.runoob.com/w3cnote/python-spider-intro.html
https://www.yiibai.com/python/python3-webbug-series1.html
https://www.yiibai.com/python/python3-webbug-series2.html
https://www.yiibai.com/python/python3-webbug-series3.html
https://www.yiibai.com/python/python3-webbug-series4.html

传送门

测试开发知识点(一)
测试开发知识点(二)
测试开发知识点(三)
测试开发知识点(四)
测试开发知识点(五)


微信扫一扫关注该公众号【测试开发者部落】

image.png

点击链接加入群聊【软件测试学习交流群】
https://jq.qq.com/?_wv=1027&k=5eVEhfN
软件测试学习交流QQ群号:511619105

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

推荐阅读更多精彩内容

  • 其实我不高冷也不傲娇,其实我不随和也不疯狂,我是怎样的人完全取决于你是什么样的人,仅此而已。二十四岁,说老不老说年...
    凉生528阅读 240评论 0 0
  • 在上海想买房,要先定个小目标,比如说,先挣它个1个亿,或者先摇号离个婚....... 今天Jicker就要靠这篇文...
    JickerCheng阅读 349评论 0 0
  • 看中医等配药期间,观摩了医生与一女患者的对话。整个过程,仿佛自己在看一部电影,而电影中的女主角,也就是那个伶牙俐齿...
    蓝山_蓝山阅读 150评论 0 0
  • 这是前几天一位福主来找我,希望我给病重的爷爷做一场法事帮他渡过难关。当时我觉得压力很大,老爷子已经九十岁高龄,...
    大郦道法开运阅读 323评论 0 0