zoukankan      html  css  js  c++  java
  • 自动化测试——case编写

    简单总结一下最近项目里遇到的问题和解决的方法,可能不全,因为之前做的时候太匆忙了,很多点都没有记录下来,能记得多少是多少吧。纲巴蝶!

    1、

    问题:犯错误,新增case后忘记把编码也写上去了,后来跑脚本的时候一直卡在相同的地方,结果跑了三遍才发现问题出在哪儿,果然半分马虎遗漏都不能有啊,不然就浪费时间了。

    解答:公司的自动化测试是根据No.的顺序来跑的,不是Test_case,我一直记错了啊!

    2、

    问题:读取result表中单一的员工姓名、员工工号项

    解答:打印出整个table的所有数据,在input中输入期望结果,与实际结果进行比对(包含关系)

    3、

    问题:获取整个下拉框的值
    解答:checktxt方法,下拉框type不要用select-list,用td

    4、

    问题:如何选中下拉框中某个值
    解答:单项下拉框的时候可以先选中下拉框,再选中其中的值。
    但多项下拉框的时候,因为value的值可能有相同的,容易在选择的时候跳框,造成混乱,所以最好直接选中下拉框select_list,然后用set方法在input中输入需要的值,注意不是value值,而是文本值。

    5、

    问题:刚刚才发现,打印整个查询结果table检查是否包含expect result中的内容,只能检查查询结果是否包含筛选值,但是不能排除筛选值以外的值,这样行吗?如果其实结果包含了除所需以外的值怎么办?靠手工测试?

    解答:收到前辈的解答,“其实自动化就不是主要的,在保证测试质量的情况下自动化 ,最终的目标是保证质量”“我们是逐步自动化,现在是有些可以的就搞自动化,有些不行的,我们就偷偷手工”好吧,这样也勉强先当做是个解答吧 ⊙﹏⊙b汗

    6、

    问题:case执行到某一段的时候突然停止了

    解答:FUN中的myobj和obj中的name没有对应,程序找不到相应的obj值。有时候是写错了,有时候是因为有下拉菜单,单纯靠复制粘贴文字以后下拉菜单中没有选中相应的name。

    7、

    问题:点击页面某个链接后,弹出弹框,弹框为IE浏览器页面,怎么将后面的case定位到该页面上去。

    解答:在config_yaml.yaml文件的Frames中定义一个新的frame,以弹框的url定义该frame。

    8、

    问题:iframe的编写格式

    解答:iframe:

    - '@browser.frame(:id,"iframe")'

    tbody:
    - '@browser.tbody(:id,"contactsListTb")'
    litemp:
    - '@browser.li(:class,"temp")'
    divli:
    - '@browser.div(:class,"recordList")'

    TitleFrame:
    - '@browser.iframe(:id,"iframe").iframe(:id,"iframeMenu")'

    addpopu:
    - "{:url,/Add/}" (这货是个弹出框,以浏览器网页显示的,URL是http://10.5.91.113:8080/hrm/transfer/empMan!preAdd.so,弹框一定要加上popu,这是调用的一个方法)

    9、

    问题:ruby写方法

    解答:例:

    config_yaml.yaml中

    check_star:(action名)

               - '$test.check_star(obj)' (调用的方法)

    tester.rb中

    def check_star(obj)(方法名)
    begin
    #debugger
    # @ie.span(:text,$case_modules[obj["input"]][1]).click(case中使用的obj)

                    (类型,值)action
    if obj["input"]==""
        i=0
    else
        i=obj["input"].to_i
    end
    ————————判断输出结果————————————
    w=@ie.li(obj["obj"]).attribute_value('style').invoke('width').to_i
    if i*25==w
        return {"is"=>"OK","output"=>"","remark"=>""}
    else
        return {"is"=>"KO","output"=>(w/25).to_s,"remark"=>""}
    end
    ————————当没有找到相应obj时————————————
    rescue StandardError => ex
        puts ex.class.to_s
        return {"is"=>"KO","output"=>"","remark"=>"the obj is not found"}
    end
    end

    10、

    问题:跑自动化的时候略过某些case,以前都是很麻烦的先备份,然后删掉不跑的部分,跑完了跳完了再来合成,忒麻烦,幸好请教了WJ,终于找到了新方法

    解决:自动化case跑的顺序是按No.的顺序来的,如果确定不跑那条case,只需要把相应的No.改成“X”就可以了,改过后只要后面的编码数目不变,还是可以继续跑的。当只想跑一小段的时候,把不想跑的那条case的No.删掉就可以了,会自动在那里停止。

    11、

    问题:自动化启动后IE浏览器弹不出来

    解决:Internet选项 - 安全 - Internet/本地 Internet/受信任的站点/受限制的站点 - 取消’启用保护模式‘

    cmd:(尝试用ruby启动浏览器)

    E:workspaceHRM>irb

    irb<main>:001:0> require "watir-webdriver"

    =>true

    irb<main>:002:0> ie=Watir::Browser.new:ie

    12、

  • 相关阅读:
    web_arcgis 步骤
    《程序员修炼之道》读后感
    《人月神话》读后感
    七天开发记录(6)
    七天开发记录(5)
    七天开发记录(4)
    七天开发记录(3)
    七天开发记录(2)
    七天开发记录(1)
    《梦断代码》读后感
  • 原文地址:https://www.cnblogs.com/poppyp/p/3276799.html
Copyright © 2011-2022 走看看