Proficient QTP and software automation testing framework design practice

副标题:无

作   者:张斌编著

分类号:

ISBN:9787115223302

微信扫一扫,移动浏览光盘

简介

   本书从测试自动化工具QTP应用、开源测试自动化工具实践、测试自动   化框架设计与实现几个方面来讲解测试自动化的实战知识,同时,为了达到   学以致用的目的,书中给出了大量实例,方便读者把所学应用到自己的软件   测试项目中。    本书以循序渐进的方式讲解了自动化功能测试的全部知识,包括4篇和   附录部分,第一篇在实践中熟悉自动化测试过程(第1~6章),主要围绕一个   自动化测试项目的开展过程来讲解,介绍了如何采取QTP去实现自动化测试   ;第二篇QTP功能详解(第7~14章),主要是围绕着QTP各个功能的应用进行   讲解,并对相关的知识点给予深入探讨;第三篇QTP实战技术应用(第15~22   章),主要是围绕着软件测试实际需求来讲解自动化测试中的各种测试实战   知识,如Ajax、PDF、DOS、UNIX、Win32 API、WSH COM等自动化测试技术;   第四篇自动化测试框架与实践(第23~25章),首先对测试自动化框架基础知   识进行了概要介绍,然后从数据管理、控制管理、错误管理、报告管理、第   三方组件管理5个方面来讲解如何去设计和实施测试自动化的框架,并通过   讲解自己编写的一个测试自动化框架来阐述如何在项目测试中具体使用框架   。    本书通过详细的例子进行分析和讲解,让读者可以通过示例进行理解,   并且可以自己进行尝试,非常适合独立学习和研究自动化测试技术的初、中   级读者使用,也适合希望了解功能测试自动化方法和过程的测试工程师阅读   ,同时也可以作为各类培训学校相关专业的教材和大专院校的参考书。   

目录

第一篇 在实践中熟悉自动化测试过程
第1章 自动化测试基础 1

1.1 什么是软件功能测试自动化 2

1.2 增量式测试 3

1.3 订票系统做了什么 3

1.3.1 测试用例 3

1.3.2 页面流 4

1.4 测试 4

第2章 搭建基础性测试脚本 5

2.1 自动化测试相关概念 6

2.1.1 对象 6

2.1.2 关键字 7

2.2 根据案例录制脚本 7

2.2.1 创建不同的action 8

2.2.2 修改ie浏览器配置 9

2.2.3 录制脚本 9

2.2.4 让脚本跑起来 12

2.3 qtp录制的技巧 12

2.3.1 qtp支持的浏览器版本 12

2.3.2 qtp event的设置 13

.2.3.3 java应用录制设置过程 15

2.4 总结 16

第3章 完善登录模块测试脚本 17

3.1 数据池 18

3.2 参数化用户名和密码数据 18

3.2.1 参数化login action的用户

名和密码 19

3.2.2 参数化技巧 21

3.2.3 参数化relogin action的

用户名和密码 22

3.3 页面流程控制 23

3.3.1 判别单击登录按钮页面

流转 23

3.3.2 如何控制脚本调用流程 24

3.3.3 如何在页面参数校验 27

3.4 我们做了什么 29

第4章 完善订票模块测试脚本 30

4.1 往返城市的动态选择 31

4.1.1 qtp关于动态控件判别

函数 32

4.1.2 随机获取往返城市 33

4.2 找出脚本原因 34

4.3 如何修正脚本 35

4.3.1 脚本修正思路 35

4.3.2 编写技巧 36

4.3.3 脚本实现分析 36

第5章 完善删票模块测试脚本 38

5.1 删除模块运行出错的原因 39

5.2 如何随机删除一张或者多张机票 39

5.2.1 对象信息分析 39

5.2.2 如何获取页面票号并随机

选择 40

5.2.3 如何动态生成票号对象 42

5.2.4 删除随机选择的票号 42

5.3 我们做了什么 43

第6章 让测试脚本灵活起来 44

6.1 工作流程的维护 45

6.1.1 工作流程的变化 45

6.1.2 工作流程的设置方法 46

6.2 测试数据维护的便捷性 47

6.2.1 测试数据维护分析 47

6.2.2 测试数据输入编写技巧 48

6.3 错误处理机制 50

6.3.1 错误处理的约定 50

6.3.2 错误处理程序实践 51

6.4 我们做了什么 55


第二篇 qtp功能详解


第7章 qtp安装、运行及常见错误处理 57

7.1 qtp安装中常见问题解决策略 58

7.1.1 安装提示installshield 1607

错误 58

7.1.2 重复安装qtp不同的版本

导致qtp安装出错 59

7.1.3 qtp安装时提示command

错误 60

7.2 qtp 运行常见问题 60

7.2.1 qtp无法正常识别对象 60

7.2.2 无法启动ie浏览器进行

录制 62

7.2.3 qtp在连续运行长时间后

出现内存耗尽解决策略 63

7.2.4 解决qtp 9.x不支持ie8

浏览器兼容性的问题 64

7.3 小结 64

第8章 qtp的工作流程与录制及运行模式

65

8.1 qtp结构整体介绍 66

8.1.1 qtp视窗 66

8.1.2 qtp的工作流程 67

8.2 qtp录制过程 68

8.2.1 qtp三种录制模式 68

8.2.2 三种录制策略 71

8.2.3 影响qtp录制和脚本更改

的属性 73

8.3 运行设置 76

8.3.1 三种运行模式 76

8.3.2 运行并更新属性 77

8.4 脚本调试 78

8.4.1 设置/取消断点的方法 78

8.4.2 调试的三种模式 78

8.4.3 调试信息跟踪 79

8.5 小结 80

第9章 脚本的参数化处理过程 81

9.1 输入参数 82

9.1.1 图形化参数化设置 82

9.1.2 参数输入来源 84

9.2 输出参数过程 86

9.2.1 图形化参数输出过程 87

9.2.2 getroproperty与

gettoproperty函数 88

9.3 action参数传递 89

9.3.1 通过parameter函数进行

参数传递 89

9.3.2 采取environment函数进行

参数传递 91

9.3.3 采取datatable进行参数

传递 91

9.3.4 三种模式参数传递的异同 92

9.4 数据驱动运行模式 92

9.4.1 图形化运行控制设置 93

9.4.2 动态控制运行模式 94

9.5 小结 95

第10章 数据池技术(datatable) 96

10.1 datatable整体结构图 97

10.2 datatable sheet的管理 97

10.2.1 两种类型的datatable
sheet 97

10.2.2 创建sheet 98

10.2.3 删除sheet 99

10.2.4 获取sheet对象 100

10.3 datasheet parameter管理 100

10.3.1 图形化参数管理 101

10.3.2 addparameter函数 101

10.3.3 deleteparameter函数 102

10.3.4 getparameter函数 103

10.4 datasheet行号控制与获取及

设置参数值 103

10.4.1 设置、获取当前行 103

10.4.2 设置上移与下移行号 104

10.4.3 获取或者设置参数值 106

10.5 小结 109

第11章 qtp过程校验 110

11.1 qtp提供的检查点类型与对不同

的环境的支持力度 111

11.2 数据校验 112

11.2.1 标准检查点 112

11.2.2 文本检查点 114

11.2.3 文本区域检查点 115

11.2.4 xml检查点 116

11.3 图片校验 118

11.3.1 图片检查点设置方法 119

11.3.2 图片检查结果校验 120

11.4 数据库校验 121

11.4.1 数据检查点案例分析 121

11.4.2 设置数据库检查点 121

11.4.3 结果校验 124

11.5 手工校验模式 124

11.5.1 校验控件是否存在

(exist) 124

11.5.2 checkproperty函数 125

11.6 小结 127

第12章 qtp对象采集、回放与

管理过程 128

12.1 qtp对象采集 129

12.1.1 对象属性采集设置流程 129

12.1.2 对象属性设置方法 129

12.1.3 order identifier功能详解 131

12.1.4 smart identifier(智能

标识)操作流程 133

12.2 脚本运行过程中对象识别过程 135

12.2.1 qtp对象识别的流程图 135

12.2.2 影响运行过程中对象识别

能力的设置 136

12.3 对象信息管理 138

12.3.1 两种类型的对象库

(local、share)异同 139

12.3.2 混合对象库的对象存储

流程 140

12.3.3 更新共享库中的对象

信息 142

12.3.4 比较与合并对象 144

12.4 小结 147

第13章 qtp自定义模式 148

13.1 qtp控件函数自定义扩展策略 149

13.1.1 registeruserfunc函数

介绍与图形化的操作 149

13.1.2 扩展qtp控件中提供的

默认函数功能 151

13.1.3 添加新的方法到指定的

控件 152

13.2 qtp自定义编程策略 152

13.2.1 调用控件内部方法 153

13.2.2 描述性编程 154

13.2.3 dotnetfactory接口 157

13.3 qtp自定义错误处理 159

13.3.1 qtp错误处理循环控制

四种策略 159

13.3.2 recovery策略 160

13.3.3 自定义错误处理程序 164

13.4 小结 165

第14章 qtp自动化测试对象

模型介绍 166

14.1 自动化测试对象控制模型

(aom)介绍 167

14.1.1 自动化测试对象控制模型

(aom)接口的分类 167

14.1.2 aom接口调用所支持的

开发语言 168

14.1.3 c#与vbscript调用aom

接口的方法 168

14.2 对qtp脚本进行各类自定义

设置操作 171

14.2.1 通过程序来设置插件

属性 171

14.2.2 通过程序动态设置脚本

资源文件 174

14.2.3 通过程序动态设置对象

标识属性 175


14.3 通过程序控制脚本的运行与

datatable设置 178

14.3.1 通过程序来控制qtp
脚本运行 178

14.3.2 通过程序进行管理

datatable操作 181

14.4 通过程序进行控制脚本参数的

传输 182

14.4.1 手工设置脚本参数 182

14.4.2 通过aom使得外部程序

与qtp进行数据交互 184

14.5 在c#中调用aom关注事项 187

14.5.1 在c#中启动qtp注意

事项 187

14.5.2 在c#中无法直接调用

aom对象的一些方法 187

14.6 小结 188


第三篇 qtp实战技术应用


第15章 qtp与ajax测试 189

15.1 ajax技术简介 190

15.2 案例讲解—ajax应用分析 190

15.2.1 应用框架介绍 190

15.2.2 应用的元素分析 191

15.2.3 采用第三方工具捕获隐藏

对象 192

15.2.4 编写脚本思路与脚本

实现 193

15.3 ajax自动化测试

分析 197

第16章 qtp与pdf文件测试 198

16.1 pdf文件测试技术简介 199

16.2 案例讲解:如何获取 pdf文件

的页数 199

16.3 adobe com接口介绍 200

16.3.1 注册表信息 200

16.3.2 adobe ole automation dom结构图 201

16.3.3 acrobat对象详解 201

16.4 案例讲解:pdf格式文件文本

检查以及按钮状态检查 202

16.4.1 封装adobe调用接口 202

16.4.2 qtp脚本调用 203

16.5 测试结果分析 204

第17章 qtp与dos命令行程序的

测试 206

17.1 dos命令行操作简介 207

17.2 通过systemutil对象模拟dos

操作 208

17.2.1 systemutil对象介绍 208

17.2.2 qtp对象属性分析 208

17.2.3 键盘模拟操作特殊键值 209

17.3 输出的捕获与校验 210

17.3.1 getvisibletext函数

介绍 210

17.3.2 结果输出与校验 210

17.3.3 getvisibletext函数的

局限性 211

17.4 利用wsh对象进行dos结果

校验 212

17.4.1 wshscriptexec对象 212

17.4.2 环境变量的设置 213

17.4.3 wsh方法的结果输出与

校验 213

17.5 案例讲解:测试workingset
dos程序 214

17.5.1 working set程序介绍 214

17.5.2 程序测试用例 215

17.5.3 自动化测试程序

实现 215

17.6 dos测试思路分析 216

第18章 qtp与win 32 api测试 217

18.1 win 32 api测试简介 218

18.2 qtp调用win 32 api的方法 218

18.2.1 win32 api函数声明

格式 218

18.2.2 qtp中调用win 32 api

函数介绍 219

18.2.3 案例讲解:调用

findwindow函数 219

18.2.4 win 32 api参数类型的

转化 219

18.2.5 自动生成qtp调用函数

工具介绍 221

18.2.6 案例讲解:qtp脚本回放

时控件状态自动校验并高

亮显示控件 221

18.3 自定义动态链接库并发布接口在qtp中调用 223

18.3.1 动态链接库技术简介 223

18.3.2 在visual c++中如何编写

动态链接库 223

18.3.3 如何校验动态链接库发布

出来的接口 225

18.3.4 qtp调用自定义动态

链接库 226

18.4 qtp调用第三方链接库思路

分析 227

第19章 telnet和ssh远程操作自动化

测试 228

19.1 远程操作技术简介 229

19.2 securecrt activex介绍 229

19.2.1 activex接口结构图 229

19.2.2 接口对象介绍 230

19.2.3 securecrt支持的语言及

调用方法 230

19.2.4 脚本运行方法 230

19.2.5 securecrt错误处理

方法 232

19.3 securecrt关键对象详解 232

19.3.1 session对象 232

19.3.2 connect函数的语法 233

19.3.3 screen对象 234

19.3.4 多样的检查点 235

19.3.5 获取指定位置的字符 237

19.3.6 请求的发送 238

19.4 案例讲解:远程登录unix服务

器自动化测试 239

19.4.1 测试案例 239

19.4.2 脚本实现 240

19.5 远程服务自动测试思路分析 241

第20章 windows脚本宿主(wsh)

应用 242

20.1 wsh技术简介 243

20.1.1 wsh引擎定义 243

20.1.2 wsh的主要用途 243

20.2 wsh对象详解 244

20.2.1 wsh对象结构图 244

20.2.2 wsh内嵌对象说明 245

20.2.3 createobject与

getobject 245

20.3 什么是wmi 246

20.4 在qtp中不支持的wscript的

属性和方法 247

20.5 wsh常用对象介绍 248

20.5.1 wshell对象 248

20.5.2 wshell主要功能 249

20.5.3 wshell常用的方法与

属性 249

20.5.4 案例讲解:结合qtp来

获取系统中相关的环境

变量值 251

20.5.5 案例讲解:判别某一

程序是否被激活 252

20.5.6 案例讲解:获取、写操作

系统日志 253

20.5.7 案例讲解:定时弹出

窗口 254

20.5.8 案例讲解:注册表操作 255

20.5.9 案例讲解:模拟键盘发送

快捷方法 258

20.6 wsh其他相关对象 262

20.6.1 网络映射 262

20.6.2 增加快捷栏标识 263

20.7 wsh总结 264

第21章 正则表达式应用 265

21.1 正则表达式技术简介 266

21.1.1 结果校验的两种方法 266

21.1.2 正则表达式应用

无处不在 266

21.2 正则表达式使用 267

21.2.1 正则表达式的用途 267

21.2.2 元字符 267

21.2.3 特殊字符 268

21.2.4 非打印字符 269

21.2.5 普通字符 269

21.2.6 字符匹配 270

21.2.7 括号表达式 270

21.2.8 限定符 272

21.2.9 定位符 273

21.2.10 选择与编组 275

21.2.11 向后引用 276

第22章 qtp实用技巧 279

22.1 qtp应用技巧简介 280

22.2 巧用qtp中web脚本回放

类型 280

22.2.1 qtp中web两种回放

类型 280

22.2.2 ui修改回放类型的方法 280

22.2.3 程序修改回放类型的

方法 280

22.2.4 类型设置不当引发的

错误 281

22.2.5 案例讲解:回放类型适用

范围 282

22.2.6 回放类型选择的思路

分析 284

22.3 qtp脚本无法保存 284

22.3.1 脚本无法保存的表象 284

22.3.2 挖掘问题的原因 284

22.3.3 问题的三种解决策略 285

22.4 qtp与java程序测试 285

22.4.1 qtp无法录制java applet

程序解决策略 286

22.4.2 在qtp脚本中调用java

程序run time的方法 287

22.4.2.1 调用java控件

提供的方法 287

22.4.2.2 识别java runtime

方法 288

22.4.2.3 创建java新的

方法实例 289

22.4.2.4 解决qtp无法接

收java runtime

返回数组 290

22.4.3 隐藏的qtp java插件

调试方法 291

22.4.3.1 通过环境变量

设定跟踪级别 291

22.4.3.2 通过环境变量修改

日志输出路径 292

22.4.3.3 通过注册表修改日

志输出 293

22.5 巧用wsc编写vbscript com

组件与qtp保留组件调用 295

22.5.1 wsc技术简介 295

22.5.1.1 wsc含义 295

22.5.1.2 wsc结构 295

22.5.1.3 生成guid的值 297

22.5.2 wsc文件生成向导 297

22.5.3 添加com组件实现方法 298

22.5.4 注册wsc文件 299

22.5.5 使用qtp保留对象调用

com组件 300

22.5.5.1 注册表中增加

reserved对象 300

22.5.5.2 qtp中调用预先

设定的保留关键

对象 301

22.6 解决qtp对象无法识别的

问题 301

22.6.1 对象无法识别分析 302

22.6.1.1 问题表现与分析 302

22.6.1.2 案例讲解:录制属

性无法标识对象 302

22.6.1.3 解决程序录制时

对象属性无法

标识的策略 303

22.6.2 录制时对象能被识别,

但是回放失败(应用程

序发生变更) 304

22.6.3 无法录制应用自定义

对象 304

22.6.3.1 自定义对象分析 304

22.6.3.2 设定对象映射

关系 305

22.6.4 无法识别web页面自定义

的事件 306

22.6.4.1 问题的表现 306

22.6.4.2 问题原因分析 306

22.6.4.3 添加预定义web

事件方法 307

22.6.4.4 添加未预定的

事件方法 307

22.7 无法录制自定义控件的执行

方法 309

22.7.1 自定义控件问题分析 309

22.7.2 案例讲解:无法录制自定义

treeview控件的checkbox

操作方法 309

22.7.2.1 案例程序实现

逻辑 309

22.7.2.2 qtp原始脚本与

回放存在的问题 310

22.7.2.3 脚本问题分析 311

22.7.3 自定义控件的测试解决

策略 311

22.7.4 总结 316


第四篇 自动化测试框架设计与实践


第23章 测试自动化框架设计基础 317

23.1 测试与自动化测试 318

23.1.1 测试 318

23.1.2 自动化测试 319

23.2 测试自动化特点 319

23.3 测试自动化的限制 320

23.3.1 测试自动化无法智能化 320

23.3.2 测试自动化无法完全

替代手工测试 321

23.3.3 测试自动化无法提升

测试的有效性 321

23.3.4 测试自动化将制约了开发

的效率 321

23.4 测试自动化过程 321

23.4.1 测试自动化前期过程 321

23.4.2 输入 322

23.4.3 执行 322

23.4.4 输出 323

23.4.5 比较 323

23.4.6 缺陷发布与影像回放 323

23.5 小结 325

第24章 测试数据自动化管理的设计 326

24.1 测试数据自动化管理设计要素 327

24.2 测试数据的维度 328

24.3 测试数据的分类 329

24.3.1 业务数据 329

24.3.2 待测的对象 330

24.4 测试数据之间的关系 331

24.4.1 数据的权重 331

24.4.2 数据的内在约束 332

24.4.3 数据的惟一性 333

24.5 测试字段之间的关联与组合 334

24.5.1 字段之间的约束 336

24.5.2 字段之间的组合 337

24.6 测试数据设计要素 337

24.7 数据运行控制 338

24.7.1 手工测试数据运行控制

模式 338

24.7.2 测试数据关系提炼角度 339

24.7.3 测试数据运行控制导图 341

24.7.4 数据运行控制设计所

涉及的问题 342

24.8 测试数据自动化设计 343

24.8.1 测试数据保存约定 344

24.8.2 数据字典 344

24.8.3 数据运行控制模型 345

24.8.4 数据关系运算模式 347

24.8.5 数据关系运算 349

24.9 数据处理模型的实现 352

24.9.1 数据存储层实现 353

24.9.2 数据关系处理实现 360

24.9.3 数据格式定义与实例

调用 366

24.9.4 qtp调用实例 368

24.10 c#实现数据管理程序实例 369

24.10.1 设计结构简介 370

24.10.2 案例管理控制过程 371

24.10.3 数据关系设计 371

24.10.4 数据组合生成过程 373

24.10.5 自动生成用例 375

24.10.6 修改用例 375

24.10.7 com数据调用接口

简介 376

24.10.8 qtp即插即用接口与

vbs调用方法 379

24.11 小结 380

第25章 案例解析:自动化测试框架设计

与实践 381

25.1 初识案例解析技术 383

25.1.1 案例解析技术产生

的原因 383

25.1.1.1 传统的自动化测试过程 384

25.1.1.2 案例解析技术自动化测试过程 384

25.1.1.3 两种自动化测试技术的异同 384

25.1.2 案例解析技术的优势 386

25.1.2.1 由“被动”变为

“主动” 386

25.1.2.2 脚本的“原子

化” 387

25.1.2.3 脚本的高扩展性 387

25.1.3 案例解析技术的缺点 388

25.2 案例解析技术脚本形成要素 389

25.2.1 测试脚本结构分析 389

25.2.2 操作三种类型的数据

分析 390

25.2.2.1 数据的预知 390

25.2.2.2 测试数据预知的

意义 391

25.2.2.3 三类测试数据的

内在分析 391

25.3 案例解析技术设计蓝图 391

25.3.1 案例解析技术所涵盖的

模块 392

25.3.2 案例解析技术设计

结构图 393

25.4 自动化测试案例编写规则设计 393

25.4.1 自动化测试案例规则

提炼 393

25.4.1.1 规则设定的意义 393

25.4.1.2 原始案例内在

特性分析 393

25.4.1.3 测试脚本与测试

案例 394

25.4.2 自动化测试案例的规则

映射 394

25.4.2.1 直接映射 394

25.4.2.2 间接映射 395

25.4.3 自动化测试案例编写

设计 395

25.4.4 自动化案例管理媒介 397

25.4.5 自动化测试案例编写的

基本模式 397

25.4.6 待测对象与案例关系的

映射 398

25.5 自动化测试对象管理 399

25.5.1 获取待测对象属性以及

对象之间的模式 400

25.5.1.1 最佳的控制模式 400

25.5.1.2 递进的控制模式 402

25.5.2 对象采集的两种策略 404

25.5.2.1 程序采集 404

25.5.2.2 二类应用模式的

程序采集实例 404

25.5.2.3 手工采集模式 416

25.5.3 对象的保存模式和读取 418

25.5.3.1 对象的保存格式

与物理存储方式 418

25.5.3.2 xml存储结构 419

25.5.3.3 数据库存储格式 421

25.5.3.4 对象的读取 422

25.6 错误处理与缺陷发送 423

25.6.1 传统的错误处理模式 423

25.6.1.1 传统的错误处理

模式的不足 424

25.6.1.2 改进的策略 424

25.6.2 错误处理模式三种测试

设计技术 424

25.6.2.1 图片处理技术 424

25.6.2.2 伪视频技术 425

25.6.2.3 视频技术 426

25.6.3 错误处理程序实例讲解 427

25.6.3.1 错误处理程序

设计思路 427

25.6.3.2 图片处理技术

实例 428

25.6.3.3 错误处理程序

调用方式 431

25.6.3.4 如何获取到错误

控件的位置 431

25.6.4 缺陷发送处理技术 431

25.6.4.1 缺陷发送模式 432

25.6.4.2 什么是同步模式、异步模式 432

25.6.4.3 两种模式的异同 432

25.6.4.4 异步模式两种操

作方式 433

25.6.4.5 缺陷发送接口的

实例 433

25.7 自动化测试运行调度 438

25.7.1 作业的调度 438

25.7.1.1 作业调度的两种

模式 439

25.7.1.2 作业调度最容易

忽视的问题 439

25.7.1.3 作业调度信息交互

的过程 440

25.7.2 调度的前置任务 440

25.7.2.1 什么是前置任务 440

25.7.2.2 前置任务的类型 440

25.7.2.3 为什么要自动化

前置处理 441

25.7.3 运行控制 441

25.7.3.1 运行控制简介 441

25.7.3.2 自动化测试运行

控制过程 441

25.7.3.3 运行控制内容 442

25.7.3.4 循环控制部分

设计 443

25.7.3.5 运行控制代码

实例 444

25.7.3.6 传递请求、获取

返回值以及日志

系统 445

25.7.3.7 日志控制信息 446

25.7.4 调度的后置任务 447

25.7.4.1 后置任务的分类 447

25.7.4.2 后置任务的意义 447

25.8 小结 448

附录a 各类数据库odbc连接字符串 449

附录b 错误处理c#版本程序 453


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Proficient QTP and software automation testing framework design practice
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon