在这里积累学习中的点点滴滴!

发布新日志

  • 职场不适

    2019-03-06 10:48:03

    吾日三省吾身,喜欢做自我反思,看看是不是我自己出了问题,可是最近总是有种中年不惑的感觉,有点小纠结,从07毕业到现在上班大概有十二年了,经历了四家公司,第一家公司3年,第二家公司3年,第三家公司1年,第四家公司快5年了,属于比较稳定型的员工,在各个公司中也遇到各种各样的同事,但是总体感觉同事们还是很友好的,虽然有见解上的不同,但是没有什么冲突,虽然不太理解其他人的一些行为举动,做事方式,但总归来说还是没太大问题,或许因为自己刚进入社会对人的态度一直比较恭谨,接人待物都比较和善,因此,在我离职五六年后结婚的时候我第一家公司的同事和领导,和其他同事都赏光参加了,因此在我的印象里,肥皂剧里面的职场争斗啥的都是不存在的,可是最近却发现自己貌似出了点问题,有点怀疑自己的人生观了。

            之前人家总是说拍须溜马的人可以事半功倍,本人是比较鄙视的,觉得不靠实力说话,阿谀奉承有什么意思,可是事实证明这就是现实,面对同样的事情,当你实话实话的时候,别人可以挑些领导想听的说,不需要考虑是不是事实,是不是前后不一,这样一个回合下来,你就落了下乘,一次无所谓,二次无所谓,当十几二十次的时候,你就发现自己貌似事事都不太顺心了。纠结了好久的结论就是即便自己无法做到无视事实发表违心之言,那么就少说一些,非要说个一二,那就挑不轻不重的说吧,既不违心,也不奉承,沉默是金,古人诚不欺我,就像皇帝新装一样,敢于揭露事实的人总是少数。

            一直以来都是与人为善,做事总是习惯性的考虑他人的感受,如果给别人带来不便或者不好的影响总是从己方取舍,可是时间久了别人理所应当的向你理所应当的索取,结果自己就变成了傻子了。有的时候实在不明白在没有利益冲突的情况下为什么别人总是想要的更多,想要打压你更多。事实证明确实有一类人掌控欲比较强,喜欢所有的事情把控在自己手里,即便他是项目经理,你是项目经理,大家各管各的就行了,他就喜欢插手别人的事情,帮别人安排,明摆着给大家找不痛快,而且还那么理所应当,唯我独尊,天下无敌。气愤、郁闷、无奈,算了吧,这些情绪都不要落在自己身上,这是他的错,不是你的错,完全没有必要因为别人的错误给自己增加负面情绪,影响自己的愉快心情,就当看戏把,别人演完了,散场了,哪里来哪里去,该干嘛干嘛。

  • 关于沟通

    2019-03-05 11:44:00

    早上爆发了一场因为沟通不畅而导致的战争,起因是开早会的时候需求分析人员不在,等到同事到了以后询问了工作进度,提了一句开发等着呢,言下之意是需求需要确认清楚才能安排后续开发事项,我们的需求人员不高兴了,她觉得这个事情不是她的责任,不是因为她导致其他人无法继续工作,这句话会让大家以为是她工作失误导致了这样的问题,很丢面子,而且一大早被人这么问工作很影响心情,一下子就爆炸了……

     

    我有点不会了,作为项目经理询问大家各自的工作进展有错吗?协助大家推动各种事情有错吗?理论上是没有错误的,可是想想既然没错为什么会有这样的问题发生呢,最终反思结果是真有错,

    错误一,在于没有考虑同事的“起床气”,刚到公司,还没坐稳,就开始被问工作,不高兴,不爽、不开心,应该给留点时间,坐下歇会、喝杯水、收复下心情,这个时候状态趋于平和,沟通起来会更友好,

    错误二,在于沟通的时候把所有的问题很直白的说了出来,没有考虑委婉的表达方式,每个人都喜欢温和的表达方式,不喜欢直面问题。

    错误三,不是每个人都和自己的考虑问题方式一样,需要换位思考,如果是自己早上刚进办公室,领导看到就说,赶紧的,你的工作没做好,这个时候我自己的反应肯定是哪里出问题了,赶紧看看有什么补救办法吗?问题要怎么解决?可是换做其他人,他们对待工作或许没有像自己这样的上心,他们考虑到可能是其他因素,而非工作本身。

    以此为戒,需要注意以后的沟通方式,有人说,如果你没错何必生气,如果你错了生气有何用,确实如此,何必赶这一时半会儿,让大家都缓一缓,愉快的沟通,才可以让今天有个好开的开始,让大家愉快、高效的工作才是项目经理想要的结果。

  • RFS 下拉列表默认值检查以及选择

    2018-03-20 11:18:02

    WEB中的下拉框比较常见,以下是对下拉框的初步尝试操作:
    1、进入新增页面,点击新增按钮,检查页面下拉框的默认选项为【女】
    2、输入姓名、年龄、电话
    3、下拉框选择课程信息

     [Arguments]    ${name}    ${age}    ${phone}
        click element    xpath=.//li[@id='SignUp']    #点击学员报名菜单
        click element    xpath=.//a[@class='tt_btn tt_right']    #点击新增按钮
        Page Should Contain Element    xpath=.//select[@id='Gender']    #进入新增页面
        List Selection Should Be    xpath=.//select[@id='Gender']    女    #检查默认性别为女
        input text    xpath=.//*[@id='RegistrationName']    ${name}    #输入姓名信息
        input text    xpath=.//*[@id='Age']    ${age}    #输入年龄信息
        input text    xpath=.//*[@id='RegistrationPhone']    ${phone}  
        List Selection Should Be    xpath=.//select[@id='PeriodId']    请选择
        Select From List by index    xpath=.//select[@id='PeriodId']    1    #选择课程
        sleep    1
        click button    xpath=.//*[@type='submit']
        Page Should Contain Element    xpath=.//a[@class='tt_btn tt_right']
  • RFS table元素定位方式

    2018-03-20 11:15:59

    以下脚本功能是删除表格中的一行数据,name变量是要删除的文字描述,

    1、到表格页面
    2、找到name名称的文字,并点击对应的删除按钮
    3、弹出确认删除提示框,点击确认
    4、删除成功后提示一个删除成功的alert点击确认
    5、检查页面是否有岗位文字信息

    删除岗位
        [Arguments]    ${name}
        进入岗位管理页面
        click element    xpath=.//tr[contains(text(),${name})]//a[@title='删除']
        page should contain    您确定要删除本记录吗?
        click element    xpath=.//*[@class='ui-dialog-buttonset']
        sleep    1
        Choose Ok On Next Confirmation
        confirm action
        page should contain    岗位
     
  • 第一个APP测试脚本-登录

    2018-03-09 15:09:51


    做测试,对于工具的初步了解第一个尝试的脚本肯定是登录了,先上脚本
    1、打开app检查页面是否有【我的】文字信息
    2、点击【我的】tab,检查页面有【未登录】文字信息
    3、点击【未登录】进入登录页面
    4、输入账号【18700000000】

    登录
        open application    http://localhost:4723/wd/hub    platformName=Android    platformVersion=4.2.2    deviceName=10.0.1.128:5555    app=${CURDIR}/xxxx.apk
        sleep    3s
        Wait Until Page Contains Element    xPath=//android.view.View[@content-desc='我的']
        click element    xPath=//android.view.View[@content-desc='我的']
        Wait Until Page Contains Element    xPath=//android.view.View[@content-desc='未登录']
        click element    xPath=//android.view.View[@content-desc='未登录']
        input text    xPath=//android.widget.EditText[@index='0']    18700000000

    注意事项:
    1、open application 关键字用于打开app,如果未安装则根据配置路径安装app并打开。
    2、使用UI Automator Viewer工具可以查看APP页面中的元素便于定位,"C:\Program Files (x86)\Android\android-sdk\tools\uiautomatorviewer.bat"。
    3、APP中常用的content-desc属性,可以在脚本中当作name,id属性直接使用。
    4、元素属性识别大小写,当时就因为定位文本框时index首字母大写了导致花费了很多时间排查问题。



  • 第一篇 Appium + 模拟器 + RF测试环境搭建

    2018-01-11 14:59:58

    公司做APP,之前没接触过,为了避免后期重复冗余的测试任务想着用自动化测试测试目的,网站好了好多的测试方案,最终决定使用开源的自动化测试工具RF进行测试,接下来就是各种安装包的下载查找,配置环境。
    以下为主要环境搭建的参考网站:
    http://blog.csdn.net/deadgrape/article/details/50563119

    1、AppiumLibrary加载显示红色
    安装成功,pip list查看也是安装成功的,但是RF中加载始终加载不上。
    原因:我的机器上安装了两个版本的python,一个python27 一个python36,目录不同,默认使用pip命令安装的库在python36目录中,而RF中使用的是目录python27 因此导致一直加载不成功,提示
    No module named six
    即使重新安装目录依然不正确,最后把C:\Program Files\Python36\Lib\site-packages目录下的对应文件拷贝到C:\Python27\Lib\site-packages目录下重启即可。



    2、查看设备名称命令adb devices 提示如下:
    adb server version (31) doesn’t match this client (36); killing…
    * daemon started successfully
    原因:
    jdk版本不一致导致。
    解决办法:
    http://www.bubuko.com/infodetail-2316781.html


    3、jdk问题解决后脚本跑不起来,

  • pip运行需要进入到对应目录下

    2018-01-10 18:32:52

    进入pip工具所在目录
    cd /d C:\Program Files\Python36\Scripts

    执行安装命令:
    pip install robotframework-appiumlibrary
  • Jmeter java.net.SocketException

    2017-12-07 09:57:10

     初学Jmeter 测试工具,莫名其妙的一大早运行的时候一直报错:

      Minecraft: Java Edition     MC-81575  [RESOLVED]java.net.SocketException: Unrecognized Windows Sockets error: 10106: create

    用百度地址发送请求也是同样的错误,因此分析不是脚本问题,应该该是哪里的服务不对了,网上各种查资料,最终在如下地址https://bugs.mojang.com/browse/MC-81575获取的正确的解决办法:

    以管理员身份运行cmd程序,执行命令:
    netsh winsock reset
    重启电脑,在运行Jmeter ok!


  • 关于分析模型

    2015-01-19 10:25:17

    做了一个项目的分析模型,总结如下:
    1、分析模型要详细,需要把系统后台处理的操作体现出来,不能只写用户的操作,否则实现时后台的操作会不清楚,影响之前的分析结论;

    2、分析模型中需要给出实体的具体属性,属性类型,约束限制,以及各种容错的提示信息等,规范输入输出提示信息;

    3、实体过多的用户可以使用协作图体现交互关系;

    4、画图要整齐,调整显示格式。

    界面原型给出界面显示的方式,分析模型给出所有的约束规则和系统处理操作,两者结合完成系统功能的描述。
  • UML学习笔记一

    2014-08-28 10:57:26

    学习基本的图的功能:

    UML图分类:用例图(Use Case)、类图(Class)、状态图()、协作图()、活动图()、协作图()、部署图()、构件图()、

    UML的图分为五类:
    用例图:从用户角度描述系统功能,并指各功能的操作者。
    静态图:包括类图,包图,对象图。
    类图:描述系统中类的静态结构
    包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构
    对象图:是类图的实例
    行为图:描述系统动态模型和对象组成的交换关系。包括状态图和活动图
    活动图:描述了业务实现用例的工作流程
    状态图:是描述状态到状态控制流,常用于动态特性建模
    交互图:描述对象之间的交互关系
    顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互
    合作图:描述对象之间的协助关系
    实现图:
    配置图:定义系统中软硬件的物理体系结构

    UML提供的基本模型图包括:
    (1)、用例图:展示系统外部的各类执行者与系统提供的各种用例之间的关系
    (2)、类图:展示系统中类的静态结构(类是指具有相同属性和行为的对象,类图用来描述系统中各种类之间的静态结构)
    (3)、对象图:是类图的一种实例化图(对象图是对类图的一种实例化)
    (4)、包图:是一种分组机制。在UML1.1版本中,包图不再看作一种独立的模型图)
    (5)、状态图:描述一类对象具有的所有可能的状态及其转移关系(它展示对象所具有的所有可能的状态以及特定事件发生时状态的转移情况)
    (6)、时序图/顺序图:展示对象之间的一种动态协作关系(一组对象组成,随时间推移对象之间交换消息的过程,突出时间关系)
    (7)、合作图:从另一个角度展示对象之间的动态协作关系(对象间动态协作关系,突出消息收发关系)
    (8)、活动图:展示系统中各种活动的执行流程(各种活动的执行顺序、执行流程)
    (9)、构件图:展示程序代码的物理结构(描述程序代码的组织结构,各种构件之间的依赖关系)
    (10)、配置图:展示软件在硬件环境中(特别是在分布式及网络环境中)的配置关系(系统中硬件和软件的物理配置情况和系统体系结构)

    切记一点:用例图是动态图,它是用来描述行为的,很多人都把它当做静态图这个认知是不对的。 
  • 新增字段和修改字段SQL

    2014-08-28 10:48:10

    --新增字段

    Create table City (ID int not null primary key,CityName varchar(50),ProvinceId int)


    --修改表
    alter table Company alter column  AddressId int
      

  • Visio保存后丢失UML视图

    2014-08-28 10:44:01

    Visio 2010  中有时保存之后发现没有了UML视图,
    其原因是在保存前,不小心删除了其中的某些图,所以把最初创建的模型元素也给删
    了,后面引用的也就自然不见了。你把源头给删了,这个不受完整性的约束。
    保存前没仔细检查,也可以说是没保存好啦。
    所以在修改时一定要注意不能随意删除东西。
  • 修改Project中的每日工作时长

    2014-08-28 10:33:39

    进入Ganttchart:project->change work time-> 
    选择WorkWeeks->Detail->选择Set day(s) to these specific working time->选择select day(s) 为周一到周五,双击from 输入要修改早上开始的时间,双击to 修改的早上终止时间,继续添加下午的起止时间即可



    进入甘特图:
    在“项目”标签下,点击“更改工作时间”,“对于日历”中选择“标准”(这一般是默认的,可以不用选择),
    在下方的选项卡上点击“工作周”-“详细信息”,在“选择日期”里点击“周一按shift+周五”,选择“对所列日期设置以下特定工作时间”,之后就可以设置你所要的开始时间和结束时间,最后确定即可。


    注意:必须进入甘特图,否则是按某一个资源修改的,需要每个资源做一次设置。
  • SQL语法大全中文版

    2010-11-08 21:40:37

  • 批处理文件

    2010-11-08 21:30:37

  • svn远程访问

    2009-10-23 17:14:04

    采用svn-win32-1.5.2+TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi

    进行管理,碰到这样的问题,启动服务后使用SVN:\\192.168.1.11访问,访问成功可看到目录结构,问题是无法再目录中新建、加入文件,找了老半天原因才发现必须在authz中添加一个完全访问属性:

    [/]
    *=rw

    才可以进行访问,在这里备忘!

  • QC工作流-缺陷模块的默认值

    2009-10-20 11:07:51

    今天有时间研究了一下QC工作流的设置,复杂的没太用到,主要是缺陷模块新建缺陷是各个字段的默认值如何设置:

    1、登陆QC项目选择自定义

    2、选择设置工作流,选择脚本编辑器

    3、选择缺陷模块脚本

    4、选择Defects_Bug_New

    Sub Defects_Bug_New
      On Error Resume Next
           Bug_Fields.Field("BG_STATUS").Value="新建"
           Bug_Fields.Field("BG_USER_03").Value="1"
           Bug_Fields.Field("BG_DETECTION_DATA").Value=NOW()
           Bug_Fields.Field("BG_PERPODUCIBLE").Value="Y"
           Bug_Fields.Field("BG_PROJECT").Value="XXXX系统"
           Bug_Fields.Field("BG_DETECTION_VERSION").Value="V1.0.0.1"
           Bug_Fields.Field("BG_PRIORITY").Value="3-高"

      On Error GoTo 0
    End Sub

    Bug_Fields.Field字段的值是根据需要进行添加的,这样就OK了,当新建缺陷时如上设置的字段全为默认值,这样就节省了新建缺陷必须选择一些不重要且重复性很大的工作量了!

    不明白的:再添加自定义字段后,添加页面显示的字段顺序如何调整

  • 如何分析LR测试结果

    2009-08-19 16:20:41

        认识LR已经好久了,很久以前就觉得自己会用LR了,简单的录制脚本然后参数化,而后再跑上N多用户,PASS就证明系统OK了,但也从不敢说我熟悉LR,最近比较有时间认真的看过Analysis手册之后才发现一直以来从未深入了解的结果分析是如此的了得!在这里浅谈一下吧!

        LR在运行场景或会话步骤时,数据将存储在扩展名为.lrr 的结果文件中。Analysis是处理收集的结果信息并生成图和报告的实用程序。在使用 Analysis 实用程序时,可以在会话中进行工作。Analysis 会话至少包含一组场景或会话步骤结果(.lrr 文件)。Analysis 将活动图的显示信息和布局设置存储在扩展名为.lra 的文件中。 (引用哦)打开Analysis的方法不多说,下来说一下如何分析。

        在结果的概述信息中可以大概了解系统的性能,一般用的比较多的就是事务的平均响应时间了,以及整个系统的响应时间,在这里可以直接判定系统是否符合性能需求,但这并不是一个真正了解系统性能的地方,每个运行结果都应该详细的做进一步的深入了解,这样我们就需要在多个图表中对比查看进行结果的分析了,以下是我个人的了解了:

    第一个看的是平均事务响应时间图,由此图可以看到事务所占用时间的走向,例如,此图中的数据走向趋高就证明系统的事务处理时间不正常,需要进一步的分析为何事务响应时间一致走高,那么此时就需要打开网页细分图了。

    (到这里就会知道为何要插入事务因为不同的事务操作的页面不同,就可以重点的分析问题了,就好比在告诉你“看看1000个用户时系统的性能”与“看看1000个用户并发登录系统时的性能”一样,换句话说就是让你知道我要找哪里的问题!但是具体该怎么定义事务就要看自己的需要了!)

    第二个看的是网页细分图,在网页细分图中就可以查看页面的详细参数包括DNS解析时间,连接服务器花费时间,第一次缓冲时间、SSL握手时间、页面组件下载时间、接受时间等,这个时候基本就可以判断出来时间花费在哪里,然后再去定位问题。比如显示第一次缓冲时间过长则去查看第一次缓冲时间细分图查找问题在服务端还是网络上。

       目前我觉的这两个图是最能说明问题的,但是前提是其他业务数据都是正常的,如何判定其他业务数据的正确性呢,这就需要根据事务图、用户图等来综合判定了!

       好了就到这里,原以为会写很多文字,但是总结一下也就这么多了,以后如果还有的话会继续写!这些东西有不到的地方还请谅解,有意见或建议经提出来大家共同学习了!


     

  • LR运行参数设置

    2009-08-18 14:39:00

    LR Record Options设置说明: 

    Recording分为两种类型

    HTML模式录制是把一个页面全部录制在一个请求里面,然后再分开录制,所以在一个请求里面就会有包含全部信息;
    URL模式会把不同的请求分开录制,一个页面打开可能有非常多的请求,LR为了要在这个模式下模拟并发情况,就用web_concurrent这个函数把同一个页面并发的情况包括起来,这样在运行脚本的时候就同时进行请求。

    Advanced

    录制脚本中含有乱码时,需要设置字符集为UTF-8

    Correlation

    是否设置自动关联

    Run time-Seting

    General->Logic 脚本运行时执行的次数

    General->Log 设置显示的日志级别,

  • LR做关联的相关说明

    2009-08-13 18:01:49

481/3123>
Open Toolbar