- TestNG基础教程
好多可乐
java开发语言测试框架testng
TestNG基础教程一、常用断言二、执行顺序三、依赖测试四、参数化测试1、通过dataProvider实现2、通过xml配置(这里是直接跑xml)五、testng.xml常用配置方式1、分组维度控制2、类维度配置3、包维度配置六、TestNG并发测试1、通过注解来实现2、通过xml来实现七、异常测试八、忽略测试九、软断言一、常用断言二、执行顺序/***执行顺序*beforeSuite-before
- 什么是TestNG以及如何创建testng.xml文件?
知识的宝藏
unittesting
目录什么是TestNG?如何创建testng.xml文件手动创建testng.xml通过testng.xml运行整个包通过testng.xml运行类使用Eclipse创建testng.xml本文将讨论TestNG以及如何通过执行testng.xml文件在TestNG中运行第一个测试用例。什么是TestNG?TestNG是一个受JUnit和NUnit启发的测试框架,但引入了一些新功能,使其更强大,更
- 如何从命令行运行testng.xml?
知识的宝藏
unittesting
目录创建一个新的java项目并从命令行运行testng.xml使用命令行运行XML文件从命令行运行现有maven项目的XML文件在这篇文章中,我们将使用命令行运行testng.xml。有多种场景需要使用命令行工具运行testng.xml。也许您已经创建了一个maven项目,现在想使用命令行运行testng.xml文件,或者您是TestNG的新手,只是想了解一下。别担心,我们将全面涵盖这两种情况。创
- IDEA自动生成TestNg.xml
ttranhoumeile
1.点击setting,装testng-j2.安装插件3.之后重启IDEA,然后项目右键,就看到了
- SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
全栈测试笔记
自动化框架中,从返回的json字符串中获取值,需要用jsonpathcom.jayway.jsonpathjson-path2.4.0运行testng.xml文件报错:SLF4J:Failedtoloadclass"org.slf4j.impl.StaticLoggerBinder".SLF4J:Defaultingtono-operation(NOP)loggerimplementationSL
- 接口测试之TestNG中使用testng.xml摘录
佛系小懒
针对testng.xml,分不同层级进行xml运行时配置文件的编写,一个典型的xml文件配置如下:通用的结构树:suite--tests----parameters----groups------definitions------runs----classes标签testng.xml文档中最上层的元素说明:一个xml文件只能有一个,是一个xml文件的根级由和组成参数说明:name必选项,的名字,将
- 第三章 通过testng.xml调用TestNG
旅行的狮子
testngxmljava测试工具testng
本章目录1.什么是DTD?2.testng.xml示例1.什么是DTD? 在创建testng.xml文件时,需要通过标签将引入DTD约束文件,在具体使用testng.xml之前,我们可以先了解一下什么是DTD。 DTD(DocumentTypeDefinition)用来定义XML文档的结构、校验合法的元素和属性,借助DTD相关人员、程序可以验证XML内容的是否符合既定的格式。下面我们通过IDE
- TestNG 执行报错 “Parameter 'xxx' is required by BeforeClass on method beforeClass but has not been ma...
桑鱼nicoo
解决方案,从下面几个方法入手:第1种.注释@Parameters是从org.testng.annotations导入的第2种.ideas运行,右键单击该类并选择,runasTestNGtest,然后确保编辑运行配置并提供JVM参数。-Dbrowser=firefox第3种.maven命令行运行,使用mvncleantest-PRegression第4种.从testng.xml执行
- IDEA自动生成TestNg.xml
草莓味酱
1.打开“Settings”Settings.png2.找到插件:Plugins→Browserespostiories→CreateTestNGXML找到插件.png3.安装:点击Install按钮后,重启IDEAimage.png4.重启后,右键工程,即可找到“创建testNG.XML”Create.png
- 3.分组测试
测试媛617
1.通过group关键字完成测试方法的分组,使用testng.xml中的字段来指定分组;classpackagefoo;publicclassCalculate{//加法publicintadd(intnum1,intnum2){returnnum1+num2;}//减法publicintsubtraction(intnum1,intnum2){returnnum1-num2;}//猫咪介绍pub
- Selenium+Java自动化测试系列教程❤
李汉卿
课时课程名称备注第1课Web自动化测试环境搭建基础JavaProject第2课代码分享(自动打开网页并执行搜索)第3课如何控制测试方法的执行顺序(Junit/TestNG)第4课配置reportNG,替代TestNG自动化测试报告引入ReportNG第5课使用testng.xml控制测试类的执行顺序第6课在Eclipse中引入TestNG测试框架引入TestNG第7课异常StaleElementR
- @BeforeSuite 和 @AfterSuite示例讲解
BabyFatXu
创建2个类,一个before和after,一个正常的test,在创建testng.xml文件,在idea中运行testng.xml,可以看出suite执行一次,@BeforeSuite和@AfterSuite在该套件的所有测试都运行在注释的方法之前,仅运行一次。@BeforeTest在每一次Test是,都进行支持publicclassDBConfig{@BeforeSuite()publicvoi
- Appium Android ——利用 TestNG 并行执行用例
自由家
软件测试自动化测试软件测试工具appiumandroid前端自动化测试工具javascript开发语言
目录前言:一、测试类二、连接两个Android设备或启动两个虚拟机三、项目路径下新建两个testng.xml四、开启两个appiumserver五、导出依赖六、执行测试七、查看报告前言:Appium是一个流行的移动应用自动化测试工具,它可以用于测试Android应用程序。TestNG是一个功能强大的测试框架,它提供了丰富的功能和灵活的配置选项,可以帮助测试人员编写和执行测试用例。一、测试类pack
- [Java 接口自动化框架]-优化篇02(EasyExcel写入不同sheet)
fen_fen
#Java自动化框架java相关java自动化jar
2021/12/01号记录:Java接口自动化框架优化:EasyExcel写入不同sheet需求:执行一次testng.xml的所有测试用例的测试结果存入1个Excel,不同的Sheet中。发现问题:做Javaweb接口自动化测试时发现,每个TestCase用例写入excel都会新生成1个新的Excel覆盖之前用例的数据,并不会追加插入数据。解决方法:方式1:想到用之前BufferedWriter
- 2.数据驱动测试
测试媛617
1)通过testng.xml传递参数:适用于简单的参数,可以在testng.xml文件中指定;注意:在xml数据驱动方式中,运行入口为testng.xml文件,右击,runas——testngsuite2)dataprovider传递参数:适用于复杂的参数。可用dataproviser来给需要的测试提供参数;注意:测试方法中的参数适用的是测试数据集中的每个一维数据的数据进行赋值;
- Testng执行顺序控制
测试的旅途中
1.class执行顺序控制-testng.xml之preserve-orderpreserve-order:用来控制里面所有的执行顺序。中默认的preserve-order为true,表示下所有按照顺序执行,如:执行顺序:按照ClassTwo,ClassThree,ClassOne执行【注】一个类里面可能存在多个测试方法(被@Test注解的方法),这些方法的执行顺序不受preserve-order
- Jenkins如何集成运行testng.xml文件的解决方案
蜗小稂
前言:在我们使用maven+testng+restassured+reportng实现接口测试框架时,会发现在本机创建项目,进行一些pom引用和简单的封装后,很快就可以直接利用idea自带的testng插件直接运行testng.xml文件中我们写好的case,但当我们脱离了idea等编辑工具时,怎么让我们的接口测试项目跑起来呢???有了这个思考后,就剩怎么实现了解决过程:解决方案一,利用命令运行;
- 1.如何快速创建testng.xml文件?
测试媛617
1.在eclipse中创建项目;2.选择项目,右击弹出菜单并选择菜单:TestNG—ConverttoTestNG;image3.勾选Generatetest.xml,并设置testng.xml相关信息;image4.设置好testng.xml相关信息后可以点击【next】or【Finish】按钮进入下一步;5.再点击【finish】按钮,testng.xml文件创建成功,可在主界面看到;6.双击
- TestNG笔记(三):testng.xml 配置文件
一只bb张
TestNG提供的annotaions用来辅助定义测试类。TestNG的testng.xml配置文件用来辅助定义执行什么样的测试,即testng.xml更像是一个测试规划。testng.xml配置文件的元数据引用http://testng.org/testng-1.0.dtd,其中定义了testng.xml中的元素、属性和顺序等。1.运行TestNG测试脚本有两种方式:IDEA直接运行从命令行运行
- 参考站点
jmyang1518
一、TestNG的testng.xml配置概述二、TestNG.xml参数配置-如何控制部分执行@test方法三、testng.xml文件结构组成及节点属性说明四、TestNG官方文档中文版(2)-annotation(转)五、testNG之XML文件内容解析--suite,class,test,package
- TestNG.xml 配置
BestFei
表示以测试类所在的包的方式定义测试用例,包中的所有测试类都被涉及,粒度较大。表示以测试类为单位的方式来定义测试用例,粒度较小。表示以测试类下的方法为单位的方式来定义测试用例,粒度最小。
- testng.xml文件节点属性说明
蘑菇小巷
suite属性说明:@name:suite的名称,必须参数@junit:是否以Junit模式运行,可选值(true|false),默认"false"@verbose:命令行信息打印等级,不会影响测试报告输出内容;可选值(1|2|3|4|5)@parallel:是否多线程并发运行测试;可选值(false|methods|tests|classes|instances),默认"false"@threa
- maven执行命令打包
零下的雨
maven命令执行testgn.xml想通过maven命令运行测试项目,需要先在pom.xml中添加插件:org.apache.maven.pluginsmaven-surefire-plugin2.19once-Dfile.encoding=UTF-8${project.basedir}/src/main/resources/testng.xml${project.basedir}/src/ma
- TestNG参数化设置
Annie丁小妞
软件测试中,经常需要测试大量的数据集。测试代码的逻辑完全一样,只是测试的参数不一样。这样我们就需要一种“传递测试参数的机制”。避免写重复的测试代码TestNG提供了2种传递参数的方式:第一种:testng.xml方式使代码和测试数据分离,方便维护;第二种:@DataProvider能够提供比较复杂的参数。(也叫data-driventesting)1.通过testng.xml传递参数给测试代码2.
- 第二章 TestNG注解(一)- 生命周期
旅行的狮子
testng
第二章TestNG的注解(一)-生命周期第二章TestNG的注解(一)-生命周期目录第二章TestNG的注解(一)-生命周期一、@Before和@After二、@Test注解三、@Test注解的参数一、@Before和@AfterTestNG框架编写case一般是三个步骤:编写业务逻辑的测试方法,然后在方法上添加TestNG的注解;编写testng.xml文件,组织case运行的粒度(按包名、分组
- Java+Selenium+Testng-web UI自动化测试框架-8生成测试报告
朝蕣林兰 Betty
UI自动化
本文提供两种生成测试报告的方法,第一种使用ReportNG,第二种自己重写ReportListener。一:先说第一种,使用ReportNG。1.首先下载ReportNG的架包,添加到project中。2.然后取消使用TestNG默认的监听器,右键工程->Properties->TestNG->勾选Disabledefaultlisteners。3.然后在testng.xml文件中加入下面内容,规
- eclipse运行testNG 报错:An internal error occurred during: "Launching testng.xml"解决办法
smxwn
eclipse自动化测试testNG运行eclipse+testNG
安装testNG插件后,运行代码报错:Aninternalerroroccurredduring:“Launchingtestng.xml”java.lang.NullPointerException但是实际上这个文件不存在空指针的错误,最后直接卸载了testNG的M2E,然后重启就可以运行了操作如下:
- 测试框架testng
茉莉915
Java接口自动化测试单元测试
简介Annotation注解TestNG是一个测试框架,它被设计为用来简化广泛的设计需求,从单元测试(单独测试一个类)到集成测试(测试由多个类、报甚至外部框架,例如应用程序服务器,所组成的系统).编写一个测试通常分为三步:编写测试业务逻辑,并且在你的代码中插入TestNGannotations。在testng.xml或build.xml添加你的测试信息。例如类名,希望运行的组等等运行TestNG.
- Testng 介绍一
weixin_39870031
javajava
1、介绍官网:TestNG是一个测试框架,旨在简化广泛的测试需求,从单元测试(将一个类与其他类隔离测试)到集成测试(对由多个类,多个程序包甚至几个外部框架组成的整个系统进行测试),例如应用程序服务器)。可以看出TestNG致力于简化测试流程。2、Quickstart1、编写测试的业务逻辑,然后在代码中插入TestNG批注。2、在testng.xml文件中添加有关测试的信息(例如,类名,希望运行的组
- 命令行运行testNG
上帝De助手
java
testNG的执行有2种基本方式:1、通过指定的XML文件来规定要执行的用例文件和用例【适用于批量】2、通过命令行参数来指定运行的用例文件和用例【适用于较少的用例文件】XML模板:【保存为testng.xml】xml的调用命令:【testng.xml可以使用绝对路径】javaorg.testng.TestNGtestng.xml,testng2.xml,...命令行的调用命令:【不带包名和带包名的
- log4j对象改变日志级别
3213213333332132
javalog4jlevellog4j对象名称日志级别
log4j对象改变日志级别可批量的改变所有级别,或是根据条件改变日志级别。
log4j配置文件:
log4j.rootLogger=ERROR,FILE,CONSOLE,EXECPTION
#log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE=org.apache.l
- elk+redis 搭建nginx日志分析平台
ronin47
elasticsearchkibanalogstash
elk+redis 搭建nginx日志分析平台
logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录。其次,需要有个队 列,redis的l
- Yii2设置时区
dcj3sjt126com
PHPtimezoneyii2
时区这东西,在开发的时候,你说重要吧,也还好,毕竟没它也能正常运行,你说不重要吧,那就纠结了。特别是linux系统,都TMD差上几小时,你能不痛苦吗?win还好一点。有一些常规方法,是大家目前都在采用的1、php.ini中的设置,这个就不谈了,2、程序中公用文件里设置,date_default_timezone_set一下时区3、或者。。。自己写时间处理函数,在遇到时间的时候,用这个函数处理(比较
- js实现前台动态添加文本框,后台获取文本框内容
171815164
文本框
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w
- 持续集成工具
g21121
持续集成
持续集成是什么?我们为什么需要持续集成?持续集成带来的好处是什么?什么样的项目需要持续集成?... 持续集成(Continuous integration ,简称CI),所谓集成可以理解为将互相依赖的工程或模块合并成一个能单独运行
- 数据结构哈希表(hash)总结
永夜-极光
数据结构
1.什么是hash
来源于百度百科:
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
- 乱七八糟
程序员是怎么炼成的
eclipse中的jvm字节码查看插件地址:
http://andrei.gmxhome.de/eclipse/
安装该地址的outline 插件 后重启,打开window下的view下的bytecode视图
http://andrei.gmxhome.de/eclipse/
jvm博客:
http://yunshen0909.iteye.com/blog/2
- 职场人伤害了“上司” 怎样弥补
aijuans
职场
由于工作中的失误,或者平时不注意自己的言行“伤害”、“得罪”了自己的上司,怎么办呢?
在职业生涯中这种问题尽量不要发生。下面提供了一些解决问题的建议:
一、利用一些轻松的场合表示对他的尊重
即使是开明的上司也很注重自己的权威,都希望得到下属的尊重,所以当你与上司冲突后,最好让不愉快成为过去,你不妨在一些轻松的场合,比如会餐、联谊活动等,向上司问个好,敬下酒,表示你对对方的尊重,
- 深入浅出url编码
antonyup_2006
应用服务器浏览器servletweblogicIE
出处:http://blog.csdn.net/yzhz 杨争
http://blog.csdn.net/yzhz/archive/2007/07/03/1676796.aspx
一、问题:
编码问题是JAVA初学者在web开发过程中经常会遇到问题,网上也有大量相关的
- 建表后创建表的约束关系和增加表的字段
百合不是茶
标的约束关系增加表的字段
下面所有的操作都是在表建立后操作的,主要目的就是熟悉sql的约束,约束语句的万能公式
1,增加字段(student表中增加 姓名字段)
alter table 增加字段的表名 add 增加的字段名 增加字段的数据类型
alter table student add name varchar2(10);
&nb
- Uploadify 3.2 参数属性、事件、方法函数详解
bijian1013
JavaScriptuploadify
一.属性
属性名称
默认值
说明
auto
true
设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传。
buttonClass
”
按钮样式
buttonCursor
‘hand’
鼠标指针悬停在按钮上的样子
buttonImage
null
浏览按钮的图片的路
- 精通Oracle10编程SQL(16)使用LOB对象
bijian1013
oracle数据库plsql
/*
*使用LOB对象
*/
--LOB(Large Object)是专门用于处理大对象的一种数据类型,其所存放的数据长度可以达到4G字节
--CLOB/NCLOB用于存储大批量字符数据,BLOB用于存储大批量二进制数据,而BFILE则存储着指向OS文件的指针
/*
*综合实例
*/
--建立表空间
--#指定区尺寸为128k,如不指定,区尺寸默认为64k
CR
- 【Resin一】Resin服务器部署web应用
bit1129
resin
工作中,在Resin服务器上部署web应用,通常有如下三种方式:
配置多个web-app
配置多个http id
为每个应用配置一个propeties、xml以及sh脚本文件
配置多个web-app
在resin.xml中,可以为一个host配置多个web-app
<cluster id="app&q
- red5简介及基础知识
白糖_
基础
简介
Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。它由Java语言编写,使用RTMP作为流媒体传输协议,这与FMS完全兼容。它具有流化FLV、MP3文件,实时录制客户端流为FLV文件,共享对象,实时视频播放、Remoting等功能。用Red5替换FMS后,客户端不用更改可正
- angular.fromJson
boyitech
AngularJSAngularJS 官方APIAngularJS API
angular.fromJson 描述: 把Json字符串转为对象 使用方法: angular.fromJson(json); 参数详解: Param Type Details json
string
JSON 字符串 返回值: 对象, 数组, 字符串 或者是一个数字 示例:
<!DOCTYPE HTML>
<h
- java-颠倒一个句子中的词的顺序。比如: I am a student颠倒后变成:student a am I
bylijinnan
java
public class ReverseWords {
/**
* 题目:颠倒一个句子中的词的顺序。比如: I am a student颠倒后变成:student a am I.词以空格分隔。
* 要求:
* 1.实现速度最快,移动最少
* 2.不能使用String的方法如split,indexOf等等。
* 解答:两次翻转。
*/
publ
- web实时通讯
Chen.H
Web浏览器socket脚本
关于web实时通讯,做一些监控软件。
由web服务器组件从消息服务器订阅实时数据,并建立消息服务器到所述web服务器之间的连接,web浏览器利用从所述web服务器下载到web页面的客户端代理与web服务器组件之间的socket连接,建立web浏览器与web服务器之间的持久连接;利用所述客户端代理与web浏览器页面之间的信息交互实现页面本地更新,建立一条从消息服务器到web浏览器页面之间的消息通路
- [基因与生物]远古生物的基因可以嫁接到现代生物基因组中吗?
comsci
生物
大家仅仅把我说的事情当作一个IT行业的笑话来听吧..没有其它更多的意思
如果我们把大自然看成是一位伟大的程序员,专门为地球上的生态系统编制基因代码,并创造出各种不同的生物来,那么6500万年前的程序员开发的代码,是否兼容现代派的程序员的代码和架构呢?
- oracle 外部表
daizj
oracle外部表external tables
oracle外部表是只允许只读访问,不能进行DML操作,不能创建索引,可以对外部表进行的查询,连接,排序,创建视图和创建同义词操作。
you can select, join, or sort external table data. You can also create views and synonyms for external tables. Ho
- aop相关的概念及配置
daysinsun
AOP
切面(Aspect):
通常在目标方法执行前后需要执行的方法(如事务、日志、权限),这些方法我们封装到一个类里面,这个类就叫切面。
连接点(joinpoint)
spring里面的连接点指需要切入的方法,通常这个joinpoint可以作为一个参数传入到切面的方法里面(非常有用的一个东西)。
通知(Advice)
通知就是切面里面方法的具体实现,分为前置、后置、最终、异常环
- 初一上学期难记忆单词背诵第二课
dcj3sjt126com
englishword
middle 中间的,中级的
well 喔,那么;好吧
phone 电话,电话机
policeman 警察
ask 问
take 拿到;带到
address 地址
glad 高兴的,乐意的
why 为什么
China 中国
family 家庭
grandmother (外)祖母
grandfather (外)祖父
wife 妻子
husband 丈夫
da
- Linux日志分析常用命令
dcj3sjt126com
linuxlog
1.查看文件内容
cat
-n 显示行号 2.分页显示
more
Enter 显示下一行
空格 显示下一页
F 显示下一屏
B 显示上一屏
less
/get 查询"get"字符串并高亮显示 3.显示文件尾
tail
-f 不退出持续显示
-n 显示文件最后n行 4.显示头文件
head
-n 显示文件开始n行 5.内容排序
sort
-n 按照
- JSONP 原理分析
fantasy2005
JavaScriptjsonpjsonp 跨域
转自 http://www.nowamagic.net/librarys/veda/detail/224
JavaScript是一种在Web开发中经常使用的前端动态脚本技术。在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的
- 使用connect by进行级联查询
234390216
oracle查询父子Connect by级联
使用connect by进行级联查询
connect by可以用于级联查询,常用于对具有树状结构的记录查询某一节点的所有子孙节点或所有祖辈节点。
来看一个示例,现假设我们拥有一个菜单表t_menu,其中只有三个字段:
- 一个不错的能将HTML表格导出为excel,pdf等的jquery插件
jackyrong
jquery插件
发现一个老外写的不错的jquery插件,可以实现将HTML
表格导出为excel,pdf等格式,
地址在:
https://github.com/kayalshri/
下面看个例子,实现导出表格到excel,pdf
<html>
<head>
<title>Export html table to excel an
- UI设计中我们为什么需要设计动效
lampcy
UIUI设计
关于Unity3D中的Shader的知识
首先先解释下Unity3D的Shader,Unity里面的Shaders是使用一种叫ShaderLab的语言编写的,它同微软的FX文件或者NVIDIA的CgFX有些类似。传统意义上的vertex shader和pixel shader还是使用标准的Cg/HLSL 编程语言编写的。因此Unity文档里面的Shader,都是指用ShaderLab编写的代码,
- 如何禁止页面缓存
nannan408
htmljspcache
禁止页面使用缓存~
------------------------------------------------
jsp:页面no cache:
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cach
- 以代码的方式管理quartz定时任务的暂停、重启、删除、添加等
Everyday都不同
定时任务管理spring-quartz
【前言】在项目的管理功能中,对定时任务的管理有时会很常见。因为我们不能指望只在配置文件中配置好定时任务就行了,因为如果要控制定时任务的 “暂停” 呢?暂停之后又要在某个时间点 “重启” 该定时任务呢?或者说直接 “删除” 该定时任务呢?要改变某定时任务的触发时间呢? “添加” 一个定时任务对于系统的使用者而言,是不太现实的,因为一个定时任务的处理逻辑他是不
- EXT实例
tntxia
ext
(1) 增加一个按钮
JSP:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
Stri
- 数学学习在计算机研究领域的作用和重要性
xjnine
Math
最近一直有师弟师妹和朋友问我数学和研究的关系,研一要去学什么数学课。毕竟在清华,衡量一个研究生最重要的指标之一就是paper,而没有数学,是肯定上不了世界顶级的期刊和会议的,这在计算机学界尤其重要!你会发现,不论哪个领域有价值的东西,都一定离不开数学!在这样一个信息时代,当google已经让世界没有秘密的时候,一种卓越的数学思维,绝对可以成为你的核心竞争力. 无奈本人实在见地