广交天下测试好友!

发布新日志

  • MYSQL入门小结

    2011-12-10 21:50:08

     本篇文章基于《MYSQL必知必会》

    1.了解MYSQL

    数据库,表,列,类型,主键:唯一区分表中的各行

    2.MYSQL简介


    3.使用MYSQL

    show databases; use database; select database(); show tables; describe table;

    4.检索数据

    select * from table limit 1;

    可以用这个检索第一条数据

    5.排序数据

    select * from table order by name; 用名字来进行排序

    select * from table order by name DESC; 用降序排列,默认的是升序

    select * from table order by name DESC limit1;查找出名字排在第一的

    6.过滤数据

    selecr * from table where name= 'allen'; 查找出名字是allen的对应数据

    类似的可以用操作符如(<,!=)来进行数据的过滤

    selecr * from table where name IS NULL; 空值检查

    7.数据过滤

    用AND,OR来进行操作,注意AND的优先级要高于OR

    IN(1000,1111)此条可以用OR代替

    NOT 否定

    8.用通配符过滤

    like

    % 表示任何字符出现任意次数,但不能通配NULL

    _ 通配一个字符

    另外注意不要过度使用通配符而导致出现不需要的数据

    9.正则表达式进行搜索

    select * from table whre name regexp 'allen';

    like 和regexp的区别在于like是完全匹配,而regexp是部分匹配

    可以用|=or来匹配多个

    匹配多个字符之一【123】

    特殊字符要转义\\.

    匹配多个如‘【0-9】{n}’

    定位符^,$

    10.创建计算单元

    select concat(column1, '(,'column2'),') from table;利用concat连接俩个列

    select concat(column1, '(,'column2'),') AS title from tables;利用AS来创建别名

    可以利用+-*/来运算

    11.实用数据处理函数

    文本处理函数如UPPER,RTTIM

    时期日期处理函数date

    数字处理如abs()

    12.汇总函数

    一些聚集函数count,max,min,avg,sum

    13.分组数据

    select * from table group by xxx; 对信息进行分组

    select * from table group by xxx having >=xxx;进行分组过滤

    注意实用order by 来组合进行排序

    14.使用子查询

    select * from table where index in (select * from table2(select...));

    15&16 联结表与高级联结

    此俩章较难,先弄清概念:内外联结的区别是内联结将去除所有不符合条件的记录,而外联结则保留其中部分。外左联结与外右联结的区别在于如果用A左联结B则A中所有记录都会保留在结果中,此时B中只有符合联结条件的记录,而右联结相反。

    inner join ...on

    right(left) outer join ...on

    17.组合查询

    俩个或多个的SELECT查询可以使用组合查询

    select index1,index2,index3 from tables where id<=5 union all select index1,index2,index3 from tables where name='allen';

    18.全文本搜索

    只有MYISAM引擎可用,搜索前要检索

    select xxx from table where match(xxx) against(‘allen'); 查找xxx列中包含allen

    扩展 select xxx from table where match(xxx) against('allen' with query expansion); 可以查找不含allen但含allen那行其它的单词,如allen那行有bill,则列出有bill的行

    布尔搜索 select xxx from table where match(xxx) against('allen' in boolean mode); 可以利用布尔操作符来限定。 -,+,<,>


    19.插入数据

    insert  into table () values()

    20.更新,删除数据

    update table set email='123@456.com' where name='allen';

    delete from table where id=1;


  • MYSQL 小技巧集锦

    2011-12-09 22:41:40

    可以使用UI客户端来操作MYSQL,推荐一个:NAVICAT。

    1.与perl语言的连接

    首先用PPM包文件管理下载DBI,DBD-mysql俩个包,然后编写以下脚本:

    #!/usr/bin/perl
    use DBI;
    my $dbname="mysql"; #访问的数据库
    my $location="10.10.10.87"; #IP
    my $port="3306";

    my $database="DBI:mysql:$dbname:$location:$port";
    my $db_user="root"; #用户
    my $db_pass="root"; #密码
    my $dbh=DBI->connect($database, $db_user, $db_pass);

    my $sql="select host,user,Password from user"; #设定检索
    my $sth=$dbh->prepare($sql);
    $sth->execute();

    while(my @ref=$sth->fetchrow_array()){
    print "host:@ref[0],user:$ref[1],password:$ref[2]\n";
    }
    $dbh->disconnect

    利用这个PERL脚本就可以操作DB了。



    2.数据库不区分大小写

    似乎在LINUX中的mysql是区分大小写的,可以找到my.cnf这个文件,在【mysqld】下添加:

    lower_case_table_names=1



    3.跳过DNS连接,加快数据库访问速度,同样在【mysqld】下添加:

    skip-name-resolve



    4.数据库远程授权:

    grant all privileges on *.* to root@'%' identified by "root"; 给*.*数据库给予root用户在所以远程机器上,密码是root

    flush privileges; 刷新权限



    5.有时候远程访问linux机器上的DB时会遇到连接上不得问题,在【mysqld】下修改:

    回路地址127.0.0.1修改成linux机器IP



    6.忘记MYSQL密码?不要紧,在【mysqld】下添加:

    skip-grant-tables 跳过user表的check

    ps:修改密码

    mysql提示符下:mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

    命令行下:mysqladmin -u root password "newpass"

  • 几大著名性能测试软件介绍

    2011-09-27 16:19:09

    1.排在首位的当然是来自生母是MERCURY,养母是HP的loaderunner.

    关于一些Q&A可查看如下网站:

    http://www.loadrunnerguru.com/faq.php

      LoadRunner是一款优秀的压力和性能测试工具,可以模拟成千上万的并发操作,对应用系统、WebService、Web服务器、数据库等进行压力和性能测试,兼容Window和Unix。

        LoadRunner的核心模块是VuGen(VirtualUsergenerator),VuGen可用于创建脚本实现测试用例的模拟,脚本可进行参数化以适应不同的场景需要,关联(correlation)和错误处理(errorhandling)的能力都非常强。Controller模块用于运行脚本、模拟大量的并发用户,而Analysis模块则用于分析和生成性能测试报告。


    2.File-AID是Compuware 的跨平台文件与数据管理解决方案

    File-AID 优点
    提高应用程序开发人员的工作效率。
    控制与测试数据创建有关的成本。
    减少测试实施运行时间的费用。


    File-AID 为开发人员带来的优势
    可访问所有标准文件类型,无需区分记录长度或格式。
    选择您所需要的精确数据以确保所有测试条件得到满足。
    针对特定的应用程序和具体条件定制数据。
    自动对比数据文件或对象以简化测试结果验证流程。
    用更改现有文件格式取代从头创建文件,以轻松地重新定义文件格式。
    提取和加载多个数据库中数据的相关子集。

    研发人员可根据此工具快速构建测试数据环境

    File-AID/CS:

    拷贝数据
    File-Aid/CS使你能够通过从一个已存在的数据库或文件拷贝子集。这个源数据和目标数据可以是一段数据和产品所支持的数据库数据类型。


    重新格式化数据
    File-Aid/CS提供了一个简单的方式从一个结构到另一个结构重新格式 ,图形化的“拖和放”界面使数据库字段和数据列与外部数据源建立联系非常方便,例如关系数据库,XML结构,数据描述语言和COBOL纪录。开发人员可以快速改变数据类型,添加,删除,重新排列,拆分或连接字段,选择子字符串,等等。这个简单的重新格式化数据的能力减少可开发人员的转换数据段的任务,否则他将要通过写程序来实现。


    产生数据
    用户辨别建立的数据行数,字段的值应该是怎样的,File-Aid/CS可以自动的生成这种数据。当新的列被加到已存在的数据表中或大的数据表需要快速建立时File-Aid/CS可以节省大量的时间。它不需要敲入每一行每一列的数据值就可方便快捷的建立数据。


    转换数据
    在转换数据的同时,File-Aid/CS可以用许多不同的方法(像以上描述)重新定义数据结构的格式。这对于测试工作进行数据转换非常有用。不需要写程序或者SQL,就可以方便的转换数据,节省了时间,资源,不需要专门的知识。


    比较数据
    比较的结果通过报表反映数据的不同之处。通过比较基线数据结果和实际测试数据结果允许用户快速确认他们的测试数据结果,也避免了执行常规的比较操作。


    关系提取和数据载入
    File-Aid/CS允许用户在维护这些数据库表之间 关联的完整性时很方便的提取多个子表。并可以随意建立像被定义的源数据库一样的目标数据库表,关系和索引。这就避免了相关人员完整地理解表结构,表之间地关系,花时间写程序和SQL脚本并执行提取和载入操作得到这些相关的数据子集。这带来的最大好处是开发人员现在可以有选择地建立这些子集,而在这之前这是个非常困难的工作。现在开发人员可以通过建立数据子集代替以前完整的产品数据拷贝既节省了测试执行时间也节省了数据存储的空间。


    3.Red Gate的SQLDataGenerator 似乎可以在很短的时间内创建百万行的数据。这个个人觉得比较适合对数据库要求比较高的如银行,存储行业,云端软件等。

  • 谁动了谁的奶酪?看TX与360的口水战

    2010-10-28 08:46:11

        这俩个公司似乎都没有消停过,如同俩个女人一样,今天你说我俩句坏话,明天她揪你俩把头发,就在我们这些看客逐渐无兴趣的时候,TX童鞋码了一帮同道中人,似乎有种不把360砍死不罢休的感觉,中国的互联网公司啊,NAIVE,现简单说下我使用这些软件的心得,欢迎大家补充:

    1. 360,目前都是免费的,安全卫士打漏洞补丁很方便,浏览器自己感觉比遨游的快点,我用遨游经常崩溃,杀毒方面感觉一般,不知道他会不会涉足搜索?毕竟它是靠广告生存的。

    2. TX, 偶尔上个秋秋,那天心血来潮弄个个花养,发现不给钱就不让加肥料,无奈我每天就给点阳光,雨露,裁剪的动作,到现在那花还半死不活的。

    3. KINGSOFT,据说是国内比较NB的,不知道瑞瑞是怎么想的,收费,不过现在玩SAAS。此东东用过一段就舍弃了,后来用卡巴,感觉还可以,就是那杀猪声受不了。

    4. Baidu, 中文支持较好,外文么?还是要找狗哥的

    5. KENIU, 木有听说过,孤陋寡文鸟。

    6. AOYOU, 算用的比较长的一款,在我机器上总崩溃,还莫名奇妙的假死,我只能KILL EXPLORER才摆平。那个网络收藏挺好的,后来360也有了。

        我在想现在微微软和狗狗哥应该在笑尔不语,跟我们相比,这些都是小场面,哥打个官司都几亿刀的,你们这挺多算是打嘴仗。

        让我想起在上海挤地铁了,南方人在上面一顿嘴打仗,末了下了车还墨迹两句。北方人尤其是东北人估计就上去开搂了,末了打完没准还一起喝个小酒啥的。

        不管怎么玩,适合网民用的才是王道,对于这场口水战,我们一起看个热闹吧,希望打完之后各自产品的质量更上一层楼,多给我们点实惠,才会有市场占有率。

  • 浮躁的“跑路”

    2008-08-07 10:23:17

       岁月无痕,转眼咱也是要奔三的人了,回想当年自己跑路时候的样子,现在想下有够滑稽,呵呵!

       如今我以前的同事们也在继续行走我们的路,努力的去寻找希望和光明,我认为这是好的,但是也要注意方向和策略!

        比我晚进公司一俩年以前的同事,我们一起喝过酒,抽过烟(我看他们抽烟),侃过山,似乎那苦涩快乐的时光就在昨天,如今他们也踌躇满志的提交离职报告,但让我很意外的是居然只有很少的人找到了马,我问之原因,告之是是在做不去了。

        做不下去?测试就是这样的工作,你对她笑她也笑,你对她哭结果就你一个人自己哭,切忌不要有烦躁的态度去对待她,我也是从那个年代过来的,我亲身体验过,所以我也有权利这样去评论:不管你现在的驴是好驴还是劣驴,请好好对待她,在你找到你的马之前,不要用技术含量低,薪资待遇,工作无味这些理由来找借口,如果你决定了,就不要轻易的放手。

       我认为成为测试人员几点基本要素:

    1. 技术上的广度和精度!

    2. 良好的团队精神!

    3. 平和的心态!

    此外还有些额外因素,将会再以后的帖子与大家讨论!

     

    最后,请记住: 路慢慢其修远兮,吾将上下而求索!

  • 【转】大家都是搞测试的,这里我也只谈测试

    2007-09-24 10:58:04

    “大家都是搞测试的,这里我也只谈测试。

    首先,我们可以有两条路发展,技术和管理。管理就是做team lead, manager, director这么走。因为我没有走这条路,所以,我这里也只谈技术。而且,即使走管理,也是应该具备很强的技术能力才行,所以技术是我们的发展之本。我个人不喜欢技术不精通的领导,也不喜欢被这种人管理。技术的发展是分阶段的,基本上你要是能发展到最后的阶段,工作,钱,房子,车子,老婆都不用发愁了。当然要一步一步走,不可能一步升天,而且一路走过来也不是很容易,应该说大部分人可能都达不到。不过只要你肯努力,坚持不懈,就一定能达到。

     

    第一阶段:就是基本功的问题。这个阶段从大学入学就开始了,我接触不少人工作几年都没有达到要求。这个要求是一定要达到的,不然以后没法往高发展。大学的一些课程一定要学好,主要是数据结构,算法,数据库,操作系统,计算机网络。争取精通两门。数据结构,算法对软件开发非常的重要,很多大公司面试就考这些。你不过关,根本通过不了面试,一两道算法题一下就把你难住了。另外,我可以告诉你,顶尖公司的面试80%都是考算法,你有没有经验不要紧,做没做过项目不要紧。关键是考察你的基本功,基本功打好了,其他工作就都容易很多了,基本功打不好,什么都白说。操作系统,争取要精通windows或者Linux内核,看你走哪条路了,我是搞windows的,不过他们之间很多地方也是相通的。计算机网络,争取精通TCP/IP协议。数据库我不怎么懂,我的理解是要精通oracle, sqlserver, 还有sql编程。另外就是编程技术了. C,C++,面向对象一定要搞懂,搞熟。大公司面试的算法就是要你用C/C++实现的。这些搞熟了,学习其他语言就是几个小时的事情。(我指的是上手,不是精通)。这些东西搞不透,不管你其他语言用多少年,回来学他们还是难。再有就是英语水平了,听说读写,各个方面都要达到要求。技术到了一定程度,英语对你的发展就起到了非常决定性的作用了。你英语好,就可以去外企,就可以外派出国,甚至在国外发展。

    以上这些都是在大学应该掌握好的。当然了,能在大学掌握好这些的毕竟是少数。这些少数人就是去了微软,Google的那些,一毕业就拿到月薪上万工资的。大部分人都是达不到要求的,这没关系,毕业后一定要找时间把这些基本功补上。不然的话,在下个阶段的发展就很受限制了。

     

    第二阶段:计算机知识的扩展,行业知识的精通。这个阶段从你大学毕业走向第一个工作岗位开始。工作之后,发现计算机的世界比大学的知识要博大精深很多。一开始工作,就要拼命吸收以前没有接触过的,新的知识。这个就不多说了,大家都会有很多感受的,会觉得很多东西都不会,不会就学。以后你跳槽去面试,人家就会看你工作几年,这几年干什么了。工作1,2年之后,很重要的一件事情就是要选择一个行业了。也许是你现在正在从事的行业,也许是一个新的行业。总之,你自己要为自己规划,选择一个适合自己,而且又热门,以后有发展的行业。无论是现在的行业,还是跳槽到一个新的行业,都需要你开始积累在这个行业的经验了,要精通这个行业。有这个基础之后,就要去这个行业里top的公司了,国企,外企都可以,一定要有名气,大公司。比如,通信的华为,搜索的百度,等等。如果你精通了这个行业,去这些公司不是很难。另外有一点很重要,如果你本科不是一所名校毕业的话,争取能上一个名校的研究生,全职,兼职都可以。这样可以为下一阶段做好充分的准备,否则的话会有比较大的困难。总之了,是自己的短处都要想办法去弥补,不然发展总会受限制。

     

    第三阶段:国际著名大公司。有了前两个阶段的积累,加上自己的英文水平,就要找机会进入国际的大公司了。相信这个时候就会有很多猎头来联系你了。选择你这个行业的世界前3,最好是第一或者第二。进去之后要学习两个方面,一是英文,中国人可以学一辈子英文的。另外一个就是大公司的管理。可以这样说,国际大公司的管理有很多类似的地方,因此他们的招聘非常愿意招其他国际大公司的职员。这就是为什么,你一旦踏上一家公司,一辈子都不用愁工作了,可以在这些大公司跳来跳去,工资节节高。到了这个阶段,你基本上可以有个比较不错的生活了,房子,车子都不会是太大的问题。

     

    第四阶段:向国际化发展。如果你还不满足,觉得自己还有能力更进一步,那我就建议你向国际化发展了。中国的工资毕竟有限,到了第三阶段也不过就是20万左右,你可能还不满足。那么你就可以联系国外的公司了,有了你的英文,你的经验,你的背景,到时候就是水到渠成了。我相信国际的猎头也会盯上你的。最后说一下,如果你现在已经具备了我所说的各个阶段的能力,那么你的简历是任何公司都很难拒绝的了。因为目前的情况,具有这些素质的测试人员在世界都紧缺。很多公司都招不到人,即使连Google ,MS也不列外。他们都在到处寻找这种人。

     

    最后说一下测试。我一直没有讨论测试的问题,因为我一直没有把测试当作一个难得东西来看待。我认为测试是表面上的,我前边提到的东西要比它重要的多。欢迎大家一起来讨论。我也是进入测试才2年多的时候,其中大多数的时间也像大家一样的迷惘,很多时候也很悲观。不过通过自己的努力,最后终于得到了一个满意的结果。我发现自己对测试这个行业的理解和很多人都不同,希望我的理解能给大家一点帮助。”

Open Toolbar