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

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:\workspace\HRM>irb

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

=>true

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

12、

自动化测试——case编写的更多相关文章

  1. case编写的httpd简单启停脚本

    case编写的httpd简单启停脚本 #!/bin/bash HTTPD="/etc/init.d/httpd" . /etc/init.d/functions case &quo ...

  2. Appium入门指南 - 环境搭建和Case编写

    本文档将详细介绍如何搭建 Appium 的运行环境,以及如何编写一个简单的 UI 自动化测试用例.其中,也会穿插讲解一些 Appium 的基本知识.关于 Appium 的更多信息,大家可以查看官方文档 ...

  3. Python+Appium自动化测试(3)-编写自动化脚本

    之前一篇博客已经讲述怎样手动使用appium-desktop启动测试机上的app,但我们实际跑自动化脚本的过程中,是需要用脚本调用appium启动app的,接下来就尝试写Python脚本启动app并登 ...

  4. Go测试技术分享(一):场景化接口Case编写

    一.前言 本人负责的支付清结算方向的测试工作,在测试项目中,会出现流程化的接口调用,请求完一个接口后,继续请求另一个接口(这里的接口可以指Http,也指rpc接口),这里以一个真实场景为例:用户在平台 ...

  5. 接口测试Case之面向页面对象编写规范

    一.什么是页面对象化 主要提倡的思想是:万物皆对象,即把一个Page看成一个对象,来进行接口自动化Case的编写,不要闲扯,直接讲怎么个操作法呢? 二.有什么优势? 2.1 Case层次清晰,便于管理 ...

  6. 接口测试Case之面向页面对象编写及规范

    一.什么是页面对象化 主要提倡的思想是:万物皆对象,即把一个Page看成一个对象,来进行接口自动化Case的编写,不要闲扯,直接讲怎么个操作法呢? 二.有什么优势? 2.1 Case层次清晰,便于管理 ...

  7. 简易selenium自动化测试框架(Python)

    最近空闲时间在探索Selenium的自动化测试,简单的写了一个小框架来测试公司的一个web产品.该框架包括以下模块: 1. Test case编写模式(page模式,参考之前的博文http://www ...

  8. Android-Junit-Report测试报告生成——Android自动化测试学习历程

    视频地址: http://www.chuanke.com/v1983382-135467-384869.html 这个内容其实已经在用了,我在上一篇文章robotium—只有apk文件的测试中已经讲过 ...

  9. python-appium手机自动化测试(仅需安装包)前期准备(pydev-eclipse编辑器)

    1.jdk安装与环境变量配置教程http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html 我本机安装的是1.6.043 2.sdk下 ...

随机推荐

  1. Struts2 Spring hibernate 整合示例 .

    示例工具:MyEclipse 8.5.Tomcat 6.0.MySql 步骤: 1.创建一个WEB工程,命名为BookShop(名字自己取,此处为示例工程名): 2.导入struts2的核心jar包, ...

  2. HUD2087

    #include<iostream> #include<cstdio> #include<cstring> #define maxn 1010 using name ...

  3. AndroidStudio SDK版本下载

    错误描述: pkg: /data/local/tmp/com.example.myapplication Failure [INSTALL_FAILED_OLDER_SDK] 出现这个错误,研究了半天 ...

  4. 2015-09-22CSS:border、background、表格、超链接、overflow、firebug

    1.CSS的border属性 ⑴定义和用法 border 简写属性在一个声明设置所有的边框属性. 可以按顺序设置如下属性: border-width border-style border-color ...

  5. 在eclipse中新建Dynamic web project时选择2.5和3.0的区别(里面涉及servlet和tomcat的问题)

    1.是指servlet的版本,是2.5的还是3.0的 servlet3.0以后支持异步 2.dynamic web module和对应的TOMCAT 版本 http://blog.sina.com.c ...

  6. When Colon Scripting is comming

    当冒号脚本来临-- 前一篇<JSON带来编程界怎样的描述>,已经展开了一种脚本设计概念,以此诞生的脚本语言待定义的语法不多.但总归需要经历各种语言描述能力对比来归纳最终友好特性的. 冒号已 ...

  7. ASP.NET WEB API 2 框架揭秘 读书笔记(一)

    第一章 概述 主要内容是介绍Web的基本概念,Restfull的基本概念及特性.最后介绍创建简单WebApi程序的步骤. Web的基本概念 IP/TCP协议簇分层,分为两种 链路层->网络层-& ...

  8. 关于PHPstorm 使用技巧

    慢慢更新,一点点积累,都是自己在使用中遇到的问题 设置:(2016.4.15) 1:注释模板,phpstorm 有非常强大的注释模板,可以根据自己的需求随时更改,并设置快捷键,非常方便 新文件注释 P ...

  9. centos 6.5 服务器安装 (LNMP ntfs文件支持 PHP-RPM CHROOT沙盒)

    centos 6.5 最小化安装 进入系统 手动开启网卡 #ifconfig eth0        //(默认会自动获得ip) 修改网站配置文件,默认开启 #cd /etc/sysconfig/ne ...

  10. jquery 插件模版

    ;(function ($) { //插件的默认值属性 var defaults = { Weight: '300px', height: '230px', nextId: 'nextBtn', ne ...