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、

  • 相关阅读:
    卡特兰数
    hdu 1023 Train Problem II
    hdu 1022 Train Problem
    hdu 1021 Fibonacci Again 找规律
    java大数模板
    gcd
    object dection资源
    Rich feature hierarchies for accurate object detection and semantic segmentation(RCNN)
    softmax sigmoid
    凸优化
  • 原文地址:https://www.cnblogs.com/poppyp/p/3276799.html
Copyright © 2011-2022 走看看