从事android客户端测试。微博:http://weibo.com/xingzunxi

发布新日志

  • robotium 配置jenkins注意点

    2014-06-19 12:54:01

    今天使用jenkins 跑robotium 时,程序报错,不能启动,提示找不到包。
    修改方法,修改manifest 里面的包名和程序里面包名一致。
    使用ant编译robotium时,注意要把测试程序的编码修改为UTF-8,在项目属性里面修改,否则中文时,会报错。
  • 使用ant编译已经存在的android 项目

    2014-06-18 18:43:02

    1.创建 build.xml文件:
      使用命令:
    android update project -n 项目名称 -target -p 项目所在路径。
              android list target 用来查看target
    2. 进入项目所在目录,使用ant debug

    3. 如果使用ant release ,需要自己添加证书及签名文件。

  • scrollToSide 功能不生效

    2013-06-26 23:41:53

    今天编写自动化脚本时,我们的客户端分为两屏,一开始编写代码如下:
    solo.scrollToSide(Solo.RIGHT),运行时发现不会自动向右滑动到第二屏,使用debug模式,程序可以自动运行,后来发现在前边加入了sleep等待就好用了。分析可能因为刚刚进入界面时,已经运行向右滑动的代码,但此时界面还没有完全显示出来,所以功能不生效。
  • Gridview 如何点击

    2013-05-08 22:04:14

    今天继续学习robotium,一个页面采用的是gridview实现的。view获取方式如下:
    关键代码:
    ArrayList<GridView> viewlist=solo.getCurrentViews(GridView.class);
    int count = viewlist.get(0).getCount();
    Log.v("roboutim", viewlist.size()+"  "+ count);
    View vault = viewlist.get(0).getChildAt(3);
    solo.clickOnView(vault);
    solo.sleep(time);
  • Instrumentation run failed due to 'Process crashed.' 解决

    2013-05-06 12:38:17

    昨天学习使用robotium写一个自动化例子时,一直报错。错误为:  Instrumentation run failed due to 'Process crashed.'
    最后发现是Activity名称没有写对,一定要注意细节。
  • 如果做项目总结

    2013-05-05 15:56:48

    每次做完项目后,作为一个测试人员都要进行项目总结,只有不断的总结,改进之前项目中的不足,我们才能够不断的进步。
    刚刚编写了一个测试总结,大概思路如下:
    1.介绍一个此次项目的功能。
    2.对项目中测试时间进行一个总结,分析时间是否合理,对今后项目计划的制定进行指导。
    3.测试用例执行情况。
    4.Bug情况
    Bug是测试人员的一个重要输出物,我们一定要进行详细的分析。我主要看几个数据:
    1)项目组每个测试人员提交Bug总数,每天提交bug数量
    2)提交给项目组每个开发的bug情况。
    3)整个项目的bug趋势图
    4)遗留bug数目
    5)延期修改Bug数目
    6)not Bug 数目
    7)重新打开Bug的数目
    5.经验与教训:
    一般分为两个方面,此次项目做的比较好的方面,待改进。
    对于待改进的点,一定要落实执行。
    备注:
    不要为了总结而总结,针对项目中出现的问题一定要在今后的过程中加以改进,要不就不如不总结。
  • Robotium截图

    2013-05-03 10:46:00

    最近开始学习Robotium,Robotium是一个测试android的自动化工具。
    昨天学习使用了一下Robotium的截屏功能。
    函数如下:

    takeScreenshot

    public void takeScreenshot()
    Takes a screenshot and saves it in "/sdcard/Robotium-Screenshots/". Requires write permission (android.permission.WRITE_EXTERNAL_STORAGE) in AndroidManifest.xml of the application under test.

    当时自己写的时候认为比较简单,没有仔细看API,忘记在Manifest里面增加权限了。
    注意是在被测试应用中增加此权限。
    举例如下:
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

  • Android客户端安装到存储卡上

    2013-03-30 14:39:09

    Android客户端的体积相对之前的symbian及j2me程序来说,大了不少,现在软件基本上都在5M以上。因此很多软件都支持安装到存储卡上。从代码实现上来说,非常简单,只需要在Manifest里面填上,android:installLocation="auto",就可以同时支持安装到存储卡上,android2.2及以上系统才支持。
    安装存储卡上对于测试来说会存在两个问题:
    1.不支持添加widget。
    2.当存储卡切换为磁盘模式等时,程序功能会失效变为不可用状态。
  • 重新开始

    2013-03-30 14:34:06

    算了一下,有三年多没有写博客了,真是不应该呢,从今天开始准备继续更新我的博客。目前主要从事Android客户端测试,积累了一些经验。
  • Symbian平台手机常用命令

    2010-01-12 10:08:56

    在手机客户端测试过程中,经常需要用到一些命令。下边是最常用的三个命令
    在symbian平台上:
    查看IMEI:*#06#
    查看软件版本:*#0000#
    手机恢复出场设置:*#7370#
  • J2me 程序的安装

    2009-12-29 17:27:26

    J2me程序分为两个包,一个是jad文件,一个是jar文件,JAD是软件配置信息文件,JAR才是真正的程序,可以通过pc套件把jad文件和jar文件都复制到手机里面,然后点击jad文件安装,也可以通过ota下载,把jadjar文件放到服务器上,然后输入网址进行下载,输入网址最后的文件名为.jad

  • 离职

    2009-12-26 14:36:12

  • LR回放中highest severity level was"ERROR"

    2009-08-24 16:36:42

    今天用loadrunner参数化后,回放时出现错误,错误提示为:Action.c(148): Error -27979: Requested form. not found     [MsgId: MERR-27979]

    经过分析找到原因为,参数化后,页面已经发生变化,和录制的时候sanpshot已经不一样了,所以提示错误,暂时没有找到解决的方法
    继续学习loadrunner

  • 把mysql数据库里面的数据导入到Excel表格里面

    2009-07-28 16:22:15

    把mysql数据库里面的数据导入到Excel表格里面

    Dim con,res,strcnn,cmd,sql
    set con=CreateObject("adodb.connection")
    Set res=CreateObject("adodb.recordset")
    Set cmd=CreateObject("adodb.command")
    strcnn="Driver={MySQL ODBC 3.51 Driver};server=localhost;database=testlink;user=root;option=3"
    con.Open strcnn
    Set cmd.ActiveConnection=con
        cmd.CommandType=1
        sql="Select * from users"
        cmd.CommandText=sql
    Set res=cmd.Execute()
    Dim i
    i=1
    do while not res.eof
     Dim Values1,values2
                        values1=res("login")
                        values2=res("password")
                        NewSheet.Cells(i+1,1).Value =values1
                       NewSheet.Cells(i+1,2).Value =values2
         

          i=i+1

            res.movenext

    Loop
    ExcelObj.ActiveWorkbook.Saveas "D:\text.xls"

    ExcelObj.Quit

    Set ExcelObj = Nothing
    Set res = nothing
    Set cmd.ActiveConnection = nothing
    Set Cmd= nothing

  • QTP excel 重命名保存

    2009-07-26 11:49:24

    execname="D:\test1.xls"
    Set bjexc=createobject("excel.application")
    On error resume next
    Set bjworkbook=objexc.workbooks.open("d:\test.xls")
    If err.number<>0 Then
     msgbox "打开失败"
    End If
    On error goto  0

    objexc.activeworkbook.saveas execname, 1
    objworkbook.close true
    Set bjworkbook= nothing
    Set bjexc= nothing

  • 读取Excel里面的数据

    2009-07-23 17:08:46

    Option Explicit
    Dim arrRange
    arrRange = ReadFile("D:\test.xls","test")

    Msgbox arrRange(3,1)
    Function ReadFile(sFilename,sSheetname)
       Dim oExcel
       Dim oSheet
       Dim oRange
       Dim arrRange
       On error resume next
       set Excel=CreateObject("Excel.Application")
       If err.number<>0 Then
        msgbox "未能初始化Excel"
        Exit Function
       End If
       On Error Goto 0
          On error resume next
     oExcel.Workbooks.Open(sFilename)
       If err.number<>0 Then
        msgbox "打开excel 失败"
          Exit Function
       End If
         On Error Goto 0
     Set Sheet=oExcel.worksheets(sSheetname).usedRange
       Set Range = oSheet.Range("A1:Z1000")
           '把Excel数据转换到数组
           arrRange = oRange.Value
           ' 关闭工作簿
           oExcel.WorkBooks.Item(1).Close
           ' 退出Excel
           oExcel.Quit
           Set Excel = Nothing
        ' 返回包含Excel数据的数组
         ReadFile = arrRange
    End Function

  • QTP获取显示mysql里面的数据

    2009-07-23 14:48:34

    Browser("TestLink - Login").Page("TestLink - Login").WebEdit("login").Set "xing"
    Browser("TestLink - Login").Page("TestLink - Login").WebEdit("password").SetSecure "4a67f8d1997f3be612a36c446be3"
    Browser("TestLink - Login").Page("TestLink - Login").WebButton("Login").Click
    Dim res , cmd ,sql,cnn,strcun
    set cnn=createobject("adodb.connection")
    Set res=createobject("adodb.recordset")
    Set cmd=createobject("adodb.command")
    strCnn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=testlink;USER=root;Option=3"
    cnn.open strcnn
    set  cmd.activeconnection=cnn
    cmd.commandtype=1
    sql="SELECT * FROM `users` WHERE login = 'xing'"
    cmd.commandtext=sql
    Set res=cmd.execute()
    msgbox res("login")
    Set res = nothing
    Set cmd.ActiveConnection = nothing
    Set Cmd= nothing


    Browser("TestLink - Login").Page("TestLink 1.7.4").Frame("titlebar").Link("Logout").Click

  • QTP导入Excel里面的数据

    2009-07-15 14:28:40

     

    在测试的时候尽量要做到数据和测试用例的分离,我一般把数据放到Excel中,调用Excel的代码如下:

    Datatable.ImportSheet"D:\QTP\test.xls","ceshi","Global"

    Dim i, rowcount
    rowcount=DataTable.GetRowCount
    msgbox rowcount
    For i=0 to rowcount-1

     DataTable.SetCurrentRow(i+1)
        msgbox  DataTable.GetSheet("Global").GetParameter("name").Value
     
     DataTable.SetNextRow
    Next

  • QTP 卸载小工具

    2009-07-14 12:12:32

    一个卸载QTP的小工具
  • 代码启动应用程序

    2009-07-13 17:31:16

    SystemUtil.Run "flight4a.exe","","D:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app","open"
481/3123>
Open Toolbar