软件自动化测试入门攻略 评分 5.0
评分
5.0
1次评价
作者: 杨定佳
出版社: 清华大学出版社
发行年月: 2024-01
装帧: 平装
版次: 2024-01第一版第一次印刷
页数: 526
定价: 129元
ISBN: 9787302651048
评价:
点个赞,支持一下吧~
作者介绍

杨定佳 (太难)

一线资深软件测试工程师,博客园优秀博主,蓝桥云课入驻作者,51Testing测试圈讲堂 特邀讲师,长期从事自动化测试设计、框架搭建和开发工作,对各类软件测试工具及相 关技术驾轻就熟。出版《Python Web自动化测试入门与实战》一书,编写的《菜鸟轻松 拿Offer:软件测试工程师面试秘笈》一书荣获2021年度“51CTO.最受读者喜爱有IT图书 ”奖。

目录

第1章 自动化测试概述 ·················· 1
1.1 什么是软件自动化测试 ················ 1
1.1.1 定义 ······························· 1
1.1.2 应用条件 ························· 1
1.1.3 对比手工测试 ··················· 2
1.1.4 分类 ······························· 3
1.1.5 价值 ······························· 4
1.2 自动化测试的概念 ······················ 6
1.2.1 流程 ······························· 6
1.2.2 原则 ······························· 7
1.2.3 测试模型 ························· 8
1.2.4 度量模型 ························ 10
1.3 自动化测试常用工具 ·················· 12
1.3.1 单元测试工具 ·················· 12
1.3.2 代码包测试工具 ··············· 13
1.3.3 接口测试工具 ·················· 13
1.3.4 Web UI测试工具 ·············· 14
1.3.5 App测试工具 ·················· 15
1.3.6 性能测试工具 ·················· 16
1.4 如何入门自动化测试 ·················· 17
1.4.1 入门是基础 ····················· 17
1.4.2 入行是起点 ····················· 18
1.4.3 入职是挑战 ····················· 18
1.5 思考题 ···································· 18
第2章 unittest ···························· 19
2.1 简介 ······································· 19
2.2 测试用例 ································· 20
2.3 测试脚手架 ······························ 21
2.4 测试套件 ································· 23
2.4.1 TestSuite类构建 ··············· 23
2.4.2 TestLoader类构建 ············ 25
2.4.3 其他方法构建 ·················· 26
2.5 测试运行器 ······························ 27
2.6 命令行接口 ······························ 28
2.7 用例执行顺序 ··························· 30
2.8 测试断言 ································· 31
2.9 skip装饰器 ······························ 33
2.10 模拟对象mock ························ 36
2.11 ddt实现参数化 ························ 38
2.12 多线程运行 ···························· 42
2.13 定时运行 ······························· 44
2.14 生成测试报告 ························· 46
2.15 发送测试结果通知 ··················· 48
2.16 思考题 ·································· 54
第3章 pytest····························· 55
3.1 简介 ······································· 55
3.2 第一个示例 ······························ 55
3.3 测试用例 ································· 57
3.4 命令行参数 ······························ 59
3.5 跳过 ······································· 61
3.6 标记 ······································· 62
3.6.1 内置标记 ························ 63
3.6.2 自定义标记 ····················· 64
3.7 夹具 ······································· 66
3.7.1 fixture参数 ····················· 66
3.7.2 夹具的使用 ····················· 67
3.7.3 夹具作用域 ····················· 68
3.7.4 共享夹具 ························ 70
3.8 参数化 ···································· 72
3.8.1 标记方式实现 ·················· 72
3.8.2 夹具方式实现 ·················· 73
3.9 配置文件 ································· 74
3.10 插件 ······································ 76
3.11 分布式执行 ····························· 77
3.12 Allure测试报告 ······················· 79
3.12.1 Allure安装 ···················· 79
3.12.2 生成测试报告 ················· 80
3.12.3 Allure特性与应用示例 ····· 82
3.13 思考题 ··································· 87
第4章 Requests ························· 88
4.1 简介 ······································· 88
4.2 主要方法 ································· 89
4.2.1 请求示例 ························ 89
4.2.2 查询参数 ························ 90
4.2.3 响应对象 ························ 91
4.3 发送GET请求 ·························· 92
4.3.1 params参数 ···················· 92
4.3.2 自定义请求头 ·················· 93
4.4 发送POST请求 ························ 94
4.4.1 data参数 ························ 95
4.4.2 json参数 ························ 96
4.5 发送其他类型的请求 ·················· 97
4.5.1 发送HEAD请求 ·············· 98
4.5.2 发送PUT请求 ················· 98
4.5.3 发送PATCH请求 ············ 98
4.5.4 发送DELETE请求 ··········· 99
4.6 文件上传 ································· 99
4.7 文件下载 ································ 100
4.8 Cookies参数 ··························· 101
4.9 Session对象 ···························· 103
4.10 重定向 ································· 104
4.11 添加代理 ······························ 105
4.12 超时设置 ······························ 106
4.13 异常处理 ······························ 106
4.14 证书验证 ······························ 107
4.15 身份认证 ······························ 107
4.16 生成测试用例脚本 ·················· 108
4.17 思考题 ································· 110
第5章 Postman························· 111
5.1 安装 ······································ 111
5.2 界面介绍 ································ 113
5.3 HTTP请求 ······························ 115
5.3.1 请求界面介绍 ················· 116
5.3.2 GET请求 ······················ 117
5.3.3 POST请求 ···················· 118
5.3.4 其他类型请求 ················ 121
5.3.5 文件上传 ······················ 122
5.3.6 文件下载 ······················ 123
5.3.7 授权 ···························· 124
5.3.8 前置脚本 ······················ 126
5.3.9 后置脚本 ······················ 128
5.3.10 请求设置 ····················· 131
5.3.11 其他 ··························· 132
5.4 环境和变量 ···························· 132
5.5 Cookies管理 ··························· 135
5.6 代理设置 ······························· 136
5.7 证书管理 ······························· 138
5.8 集合管理 ······························· 140
5.8.1 执行集合 ······················ 141
5.8.2 参数化 ························· 142
5.8.3 分支和循环 ··················· 144
5.9 模拟服务器 ···························· 145
5.10 监视器 ································· 148
5.11 命令行执行集合 ····················· 152
5.12 思考题 ································· 157
第6章 Selenium ······················· 158
6.1 简介 ····································· 158
6.1.1 版本演进 ······················ 158
6.1.2 特点 ···························· 159
6.1.3 WebDriver的工作原理 ····· 159
6.2 环境准备 ······························· 160
6.2.1 安装Selenium ················· 160
6.2.2 安装浏览器驱动 ·············· 161
6.2.3 第一个示例 ···················· 162
6.3 浏览器操作 ····························· 163
6.4 页面元素定位 ·························· 169
6.4.1 页面查找元素 ················· 170
6.4.2 id定位 ·························· 171
6.4.3 name定位 ····················· 171
6.4.4 class定位 ······················ 172
6.4.5 tag定位 ························ 172
6.4.6 link定位 ······················· 173
6.4.7 partial link定位 ··············· 173
6.4.8 css定位 ························ 173
6.4.9 xpath定位 ····················· 174
6.4.10 相对定位 ····················· 178
6.4.11 定位一组元素 ··············· 179
6.5 获取页面内容 ·························· 180
6.6 获取元素属性 ·························· 181
6.7 页面元素操作 ·························· 183
6.7.1 单击 ····························· 183
6.7.2 输入文本 ······················· 184
6.7.3 清除文本 ······················· 184
6.7.4 提交表单 ······················· 185
6.7.5 单选框操作 ···················· 186
6.7.6 复选框操作 ···················· 187
6.7.7 下拉框操作 ···················· 187
6.7.8 Frame结构操作 ·············· 189
6.8 文件操作 ································ 191
6.8.1 文件上传 ······················· 191
6.8.2. 文件下载 ······················· 192
6.9 模拟鼠标操作 ························· 194
6.10 模拟键盘操作 ························ 197
6.11 延时等待 ······························ 198
6.12 浏览器配置 ··························· 201
6.13 其他操作 ······························ 203
6.13.1 调用JavaScript ············· 203
6.13.2 Cookie操作 ················· 204
6.13.3 屏幕截图 ····················· 205
6.13.4 获取环境信息 ··············· 205
6.13.5 执行CDP命令 ············· 206
6.13.6 设置超时时间 ··············· 207
6.14 Webdriver Manager ·················· 207
6.15 Selenium Grid ························ 208
6.16 生成测试用例脚本 ·················· 212
6.17 思考题 ································· 218
第7章 Appium ························· 219
7.1 简介 ····································· 219
7.2 Android模拟器 ························ 220
7.3 ADB工具 ······························ 221
7.3.1 ADB的工作原理 ············ 221
7.3.2 ADB工具安装 ··············· 222
7.3.3 ADB常用命令 ··············· 224
7.3.4 自动化测试中常用的ADB 命令 ···························· 225
7.4 Appium环境准备 ····················· 228
7.4.1 安装Appium Desktop ······· 228
7.4.2 安装Appium Inspector ······ 229
7.4.3 Appium简单使用 ············ 230
7.4.4 Inspector功能 ················· 233
7.4.5 脚本录制 ······················· 233
7.4.6 查看元素属性 ················· 236
7.5 Appium Server ·························· 236
7.6 Appium Client ·························· 238
7.7 UI Automator Viewer ················· 240
7.8 元素定位 ································ 241
7.9 元素操作 ································ 243
7.10 获取元素属性 ························ 244
7.11 触控事件 ······························ 246
7.11.1 TouchAction ················· 246
7.11.2 输入源行为 ·················· 248
7.11.3 单点触控 ····················· 249
7.11.4 多点触控 ····················· 250
7.11.5 其他触控操作 ··············· 252
7.12 设备交互 ······························ 254
7.13 Android Toast识别 ·················· 258
7.14 其他操作 ······························ 259
7.15 不同应用的测试 ····················· 262
7.15.1 App应用程序的分类 ······ 262
7.15.2 案例一: 原生应用的测试 ············· 263
7.15.3 案例二: Web应用测试 ················ 271
7.15.4 案例三: 混合应用测试 ················ 275
7.15.5 案例四: 微信小程序测试 ············· 277
7.16 稳定性测试 ··························· 279
7.16.1 Monkey简介 ················ 279
7.16.2 Monkey常用参数 ·········· 280
7.16.3 Monkey日志分析 ·········· 282
7.17 思考题 ································· 285
第8章 JMeter ·························· 286
8.1 简介 ····································· 286
8.2 安装 ····································· 287
8.3 配置文件 ······························· 288
8.4 界面介绍 ······························· 291
8.5 脚本录制 ······························· 293
8.6 基本组件 ······························· 297
8.7 测试计划 ······························· 298
8.8 线程组 ·································· 301
8.8.1 普通线程组 ··················· 302
8.8.2 开放模型线程组 ············· 304
8.9 取样器 ·································· 305
8.9.1 HTTP请求 ···················· 306
8.9.2 调试取样器 ··················· 311
8.9.3 BeanShell 取样器 ··········· 312
8.9.4 FTP请求 ······················ 314
8.9.5 JDBC请求 ···················· 316
8.9.6 SMTP取样器 ················· 316
8.10 配置元件 ······························ 320
8.10.1 CSV数据文件设置 ········ 321
8.10.2 HTTP信息头管理器 ······ 323
8.10.3 HTTP Cookie管理器 ······ 324
8.10.4 HTTP请求默认值 ········· 326
8.10.5 JDBC连接配置器 ·········· 327
8.10.6 随机变量 ····················· 330
8.11 前置处理器 ··························· 332
8.11.1 用户参数 ····················· 333
8.11.2 取样器超时 ·················· 334
8.12 后置处理器 ··························· 334
8.12.1 CSS/Query提取器 ·········· 335
8.12.2 JSON提取器 ················ 337
8.12.3 正则表达式提取器 ········· 338
8.12.4 XPath提取器 ················ 339
8.13 断言 ···································· 341
8.13.1 响应断言 ····················· 342
8.13.2 JSON断言 ··················· 343
8.13.3 XPath断言 ··················· 345
8.14 定时器 ································· 346
8.14.1 固定定时器 ·················· 347
8.14.2 统一随机定时器 ············ 347
8.14.3 同步定时器 ·················· 347
8.14.4 高斯随机定时器 ············ 348
8.15 监听器 ································· 348
8.15.1 查看结果树 ·················· 349
8.15.2 聚合报告 ····················· 350
8.15.3 响应时间图 ·················· 351
8.15.4 断言结果 ····················· 351
8.16 逻辑控制器 ··························· 352
8.16.1 IF控制器 ····················· 353
8.16.2 循环控制器 ·················· 354
8.16.3 ForEach控制器 ············· 355
8.16.4 仅一次控制器 ··············· 356
8.17 作用域和执行顺序 ·················· 357
8.18 插件 ···································· 357
8.19 函数 ···································· 360
8.20 分布式部署 ··························· 362
8.21 可视化监控平台的搭建与使用 ··· 364
8.21.1 安装和部署InfluxDB 1.7 ·· 365
8.21.2 安装和部署Grafana ······· 365
8.21.3 Grafana中添加 JMeter模板 ·················· 366
8.21.4 创建和运行JMeter脚本 ··· 367
8.22 思考题 ································· 368
第9章 实现单元测试 ················· 370
9.1 被测产品介绍 ························· 370
9.1.1 项目介绍 ······················ 370
9.1.2 产品搭建 ······················ 371
9.2 单元测试简介 ························· 374
9.2.1 概念 ···························· 374
9.2.2 分类 ···························· 375
9.2.3 对测试人员的要求 ·········· 375
9.3 用例设计方法 ························· 376
9.3.1 路径覆盖 ······················ 377
9.3.2 语句覆盖 ······················ 377
9.3.3 条件覆盖 ······················ 378
9.3.4 判定覆盖 ······················ 379
9.3.5 判定和条件覆盖 ············· 380
9.3.6 条件组合覆盖 ················ 381
9.4 实战对象 ······························· 381
9.5 设计测试用例 ························· 383
9.6 编写测试脚本 ·························· 384
9.7 统计代码覆盖率 ······················· 385
9.8 思考题 ··································· 387
第10章 实现代码包测试 ·············· 389
10.1 什么是代码包 ························ 389
10.2 用例设计方法 ························ 389
10.3 实践对象 ······························ 390
10.4 设计测试用例 ························ 392
10.5 编写测试脚本 ························ 393
10.6 测试运行 ······························ 397
10.7 思考题 ································· 398
第11章 实现接口测试 ················· 399
11.1 接口测试简介 ························ 399
11.1.1 概念 ··························· 399
11.1.2 常见接口协议 ··············· 400
11.2 用例设计方法 ························ 401
11.3 实战对象 ······························ 403
11.4 构建项目结构 ························ 404
11.5 设计测试用例 ························ 406
11.6 编写项目脚本 ························ 407
11.6.1 设计测试用例文件 ········· 407
11.6.2 添加基础配置数据 ········· 413
11.6.3 读取配置文件内容 ········· 414
11.6.4 获取测试用例数据 ········· 415
11.6.5 封装接口请求函数 ········· 418
11.6.6 设置共享夹具 ··············· 419
11.6.7 封装断言函数 ··············· 419
11.6.8 添加测试用例函数 ········· 422
11.7 执行测试项目 ························ 425
11.8 思考题 ································· 427
第12章 实现Web UI测试 ·········· 428
12.1 Web UI测试简介 ···················· 428
12.2 用例设计方法 ························ 429
12.3 Page Object模型 ····················· 430
12.4 实战对象 ······························ 432
12.5 设计测试用例 ························ 433
12.6 项目结构搭建 ························ 434
12.7 编写测试脚本 ························ 436
12.7.1 封装元素定位 ··············· 436
12.7.2 添加测试数据 ··············· 438
12.7.3 页面功能函数封装 ········· 439
12.7.4 实现测试用例 ··············· 446
12.8 执行测试项目 ························ 452
12.9 思考题 ································· 453
第13章 实现移动端测试 ············· 454
13.1 App测试简介 ························ 454
13.2 项目实战对象 ························ 455
13.3 项目结构搭建 ························ 456
13.4 编写测试脚本 ························ 457
13.4.1 封装元素定位 ··············· 457
13.4.2 添加测试数据 ··············· 458
13.4.3 页面功能函数封装 ········· 459
13.4.4 实现测试用例 ··············· 465
13.5 执行测试项目 ························ 466
13.6 思考题 ································· 467
第14章 实现性能测试 ················· 468
14.1 性能测试简介 ························ 468
14.1.1 测试流程 ····················· 469
14.1.2 常见性能指标 ··············· 469
14.1.3 流量回放技术 ··············· 470
14.2 性能需求分析 ························ 471
14.3 制订测试计划 ························ 472
14.4 确定测试方案 ························ 475
14.5 搭建测试环境 ························ 478
14.6 准备测试数据 ························ 479
14.7 开发压测脚本 ························ 479
14.7.1 添加请求 ····················· 479
14.7.2 运行调试 ····················· 485
14.7.3 设置断言 ····················· 487
14.7.4 增加压力 ····················· 490
14.8 测试执行及监控 ····················· 492
14.9 结果分析 ······························ 493
14.10 性能调优 ····························· 497
14.11 编写测试报告 ······················· 498
14.12 思考题 ································ 498
第15章 容器化部署与自动化测试 ··· 499
15.1 什么是容器化部署 ·················· 499
15.2 Docker安装 ··························· 500
15.3 Docker核心概念 ····················· 502
15.4 Docker使用 ··························· 503
15.4.1 仓库操作 ····················· 503
15.4.2 镜像操作 ····················· 504
15.4.3 容器操作 ····················· 506
15.5 Dockerfile ····························· 510
15.6 Docker部署Jenkins ················· 513
15.6.1 Jenkins安装 ················· 513
15.6.2 Jenkins在自动化测试中的 应用 ···························· 515
15.7 持续集成与自动化测试 ············ 522
15.7.1 什么是持续集成 ············ 523
15.7.2 持续集成常用工具 ········· 523
15.7.3 部署测试项目 ··············· 524
15.8 思考题 ································· 524
参考文献 ····································· 525

内容介绍

《软件自动化测试入门攻略》以软件自动化测试工具在项目实践中的应用为主线,依照“需求分析→用例设计→脚本开发→测试执行→结果分析”的自动化测试流程,详细介绍软件自动化测试的方法论、必备知识与核心技能。全书共15章,第1章至第8章主要介绍当前企业使用率最高的unittest、pytest、Requests、Postman、Selenium、Appium和JMeter 7款自动化测试工具,第9章至第14章分别以Leadshop开源商城系统中的部分模块为实战对象,运用前述章节的工具依次实现单元测试、代码包测试、接口测试、Web UI测试、移动端测试和性能测试演练,完成基础工具的单个知识点学习到项目的综合运用,第15章介绍Docker容器技术及其在Jenkins中实现测试项目的任务部署,完成分布式节点挂载和定时执行。

《软件自动化测试入门攻略》来自一线资深测试工程师多年从业经验的总结,内容详实,贴近实际工作需要,既可帮助对自动化测试感兴趣的新手快速入门和入行,又可对有一定测试基础的读者实现自我能力的提升和突破。

书评

本书介绍多款当前流行的、适用于多种测试类型的自动化测试工具,结合真实系统模块分享不同类型的自动化测试实战演练过程,并提供测试源代码下载。是一本自动化测试方法论、实践与工具相结合的好书,推荐给想深入学习自动化测试的各位同仁。

林冰玉
Thoughtworks总监级咨询师、质量赋能专家

如今,敏捷软件开发方法和DevOps实践已经在越来越多的团队中应用,而由此引发的“测试效率革命”亟需大量掌握自动化测试技能的工程师。软件测试自动化需要以目标为导向,实现与实际业务结合,往往需要多种类型的框架、技术和实践组合使用。而本书的特点是涵盖了大多通用的自动化测试工具和技术,在学习的同时配合练习,期望能与你一起开启自动化测试之旅。

熊志男
前京东研发效能产品经理、测试窝社区资深专家

我与本书作者有着多年的技术交流,杨老师亦师亦友,在测试领域有着资深的理论积淀与工程实践。本书内容丰富,贴近实际,可帮助任何对自动化测试感兴趣的从业者快速入门,使有一定测试基础的从业者实现自我提升和突破。无论你是正在考虑转行进入自动化测试领域,还是希望提升现有的现有测试技能,本书都能够满足你的需求。这不仅仅是一本理论引导,更是一本实践指南。通过阅读本书,并结合实际项目中的案例,你将能够快速上手并有效地运用到自动化测试工作中。
金鑫
软件测试书籍作者、测试行业赛事评委、技术社区贡献者

测试工作的本质是一项技术调查。测试人员在经过一系列信息收集、场景设计和验证后,对产品提供质量反馈。合理有效的自动化测试能够快速获得反馈,从而帮助产品快速迭代。这正是自动化测试的价值所在。本书涵盖了与软件测试和自动化相关的各种主题,包括众多测试工具的应用,如 unittest、pytest、Requests、Postman、Selenium、Appium 和 JMeter。章节划分细致合理,相信可以帮助自动化测试初学者快速破冰,引领读者进入高效测试的殿堂。

吴子腾
《Selenium自动化测试之道》第一作者

《软件自动化测试入门攻略》从单元测试、接口自动化、UI自动化到性能测试,再到Docker技术均有涉及,从单元测试框架到工具的选择也是当下最为主流的技术栈。书中内容详实,可见作者工作者中积累的实战经验,总是一本自动化测试入门佳作。
— 虫师,某互联网电商公司,任高级经理

《软件自动化测试入门攻略》介绍了unittest、pytest、Requests、Postman、Selenium、Appium和JMeter 7款自动化测试工具以及Leadshop开源商城系统中的部分模块作为实战对象,并且介绍了容器化部署与自动化测试。本书通俗易懂,以实际工作出发介绍软件自动化测试,是一本难得的好书。
— 顾翔,软件测试专家,《全栈软件测试工程师宝典》《通过案例玩转JMeter(微课版)》《软件单元测试》等图书作者

2023年是AI元年,所有产品都值得用AI重写一遍,毫无例外的,软件测试领域也进入了AI重写的阶段,无论是AI生成测试用例,还是AI执行自动化用例,还是最近问世的AppAgent,都是非常不错的探索,我们非常看好未来。当然在我们抬头看天的时候,还是得低头看路,而路就是我们测试人员需要掌握的基础知识,有些基本的东西永远不会过时。本书将软件自动化测试的知识和技术进行概括和总结,辅以作者自身的经验,对于刚刚测试入门的同学是本不错的教材。
—张立华(恒温),蚂蚁高级测试专家

我们通常讲的“自动化测试”,其实有点“名实不符”,准确地表述应该是“自动化测试运行”,即Apply - 应用测试脚本的过程,由机器自动地完成测试的执行。

Apply一般包含OOCO这些工作:Operate(调用被测对象运行)、Observe(观察运行的结果)、Compare(与预期结果进行比较)、以及Output(输出测试运行的结果或报告)。

为了让上述这些“测试运行”的工作能自动地完成,在此之前还需要由测试人员做Develop(设计测试脚本);在Deveop和Apply之后,还需要测试人员完成Interpret(分析解读测试结果)和Maintain(对测试脚本的更新维护)这些工作。

Develop、Interpret、Maintain与Apply一样,都是测试过程中必不可少的工作。
因此,更准确地叫法不是Automated Testing,而是Automated Checking。

不过我发现,随着大模型时代的到来,生成式AI也可以快速生成测试用例、生成测试代码、根据专家指定的规则进行一定的推理判断、对代码进行优化等等,这意味着测试过程的大部份内容确实可以借助工具,部分或全部自动化地开展了。

这意味着,“Automated Testing”的说法,终于向着名实相符的方向迈进了。

不论Automated Testing如何演进,“人”在其中仍然扮演着不可替代的作用。

本书重点阐述的就是“自动化测试运行(Apply)”这部分的基础知识、基础工具的运用。书中大量的实例和详尽地操作步骤,提供了可以立即上手实操的知识和技巧。如果你是软件测试领域的新人,推荐对照书中的实例进行练习,相信本书可以快速地帮助你入门Automated Checking。
—邰晓梅 20231224 海盗派方法学创始人,著有《海盗派测试分析:MFQ&PPDCS》一书

本书对自动化测试入门做了系统化总结,列举了大量工具案例。适合对自动化测试感兴趣的读者阅读。
—艾辉,前知乎研发效能负责人,畅销书《机器学习测试入门与实践》《大数据测试技术与实践》作者

作者通过使用频度最高的工具和框架,对api自动化,web自动化,app自动化和性能测试进行了由简入深的教学,并通过大量实例来引导读者理解,为功能测试的同学打开一扇新的大门。
—刘云龙(山豆根行者),甄零一诺合同管理SaaS测试总监

39.3° /393阅读/5点赞 发表评论

登录 后发表评论
认领图书 分享图书
出版社介绍

清华大学出版社成立于1980年6月,是教育部主管、清华大学主办的综合性大学出版社。2009年4月由国有独资全民所有制企业改制为有限责任公司。2014年10月成立清华大学出版集团。作为国内领先的综合性教育与专业出版机构,清华社先后荣获 “先进高校出版社”“全国优秀出版社”“全国百佳图书出版单位”“中国版权最具影响力企业”“首届全国教材建设奖全国教材建设先进集体”等荣誉。