Sent: Monday, 2 November, 2015 4:04 PM

Test case description:
在create appointment view中,定义了一个这样的元素:

<form:FormElement id="responsible"
label="{i18n>view.Appointment.employeeResponsible}">
<form:fields>
<Input id="responsibleText" value="{vm>/ResponsibleTxt}"
showValueHelp="true" valueHelpOnly="false"
liveChange="onEmployeeInputFieldChanged"
suggestionItemSelected="onEmployeeSuggestItemSelected"
valueHelpRequest="onF4Employee">
</Input>
</form:fields>
</form:FormElement>

我的test case是要测#responsibleText的suggestion功能,即根据输入,自动生成并显示suggestionItems,如图1:

图1

在OPA里通过waitFor()方法找到了#responsibleText控件,并触发了它的LiveChange事件,去调用NewAppointment.controllers.js中的onEmployeeInputFieldChanged方法。但是很奇怪的是,Jekins的report显示,onEmployeeInputFieldChanged方法中,带红底色部分的代码并没有运行(见图2),从而没有为#responsibleText 这个input生成suggestionItems。OPA运行结果如图3.

图2

图3

然后我就在chrome的里debug,发现其实浏览器是有跑图2的红底色代码的,但OPA frame里确实是没有可视的suggestionItems的。我尝试用写waitFor()方法去找suggestionItem所定义的类型(sap.ui.core.Item)的控件,也还是找不到,从而input的suggestionItemSelected事件也就无法继续写opa test case去测。

PS:
http://localhost:8080/cus.crm.mycalendar/test-resources/testsuite.opa.html?sap-language=EN&responderOn=true&testNumber=14,是本地访问这个testcase的URL.

solution

执行所有的test case是在浏览器地址栏里输入URL :http://localhost:8080/cus.crm.mycalendar/test-resources/testsuite.opa.html?sap-language=EN&responderOn=true;
如果不执行所有的test case,只执行指定的某一个,就是在上面你的URL后再加一个参数testNumber=xxx,它在OPA页面里是主窗口的每一行最前面test case的序号,也就是你的截图里的“1.”,比如
http://localhost:8080/cus.crm.mycalendar/test-resources/testsuite.opa.html?sap-language=EN&responderOn=true&testNumber=14 , 就是跑第14个test case(就是我现在有问题的这个case)
2. 括号里的三个参数的意义是:(arg1, arg2, arg3)
arg1——当前test case下,跑失败的子用例;
arg2——当前test case下,跑成功的子用例;
arg3——当前test case所包含的所有子用例的总数目。

就是说,每一个test case下面可以写子用例的意思是,其实就是一个分步骤的概念:比如我要测试点击一个button后会不会弹出一个dialog,这一整套动作是作为一个test case写的,但是需要分步骤来检测每一个控件的行为——首先找到button,写一条子用例语句来打印“find button AAA”,然后浏览器render出一个dialog,我们再写一个子用例来找dialog,写一条子用例语句来打印“find dialog BBB”。

在我机器上测试test case14的时候,我并没有执行到你图2里红底色的那些代码里:

Line 2120亿执行就会出错:

这里的this 并没有指向controller,所以不存在这个_setEmployee function:

你如果执行它,会跳到下面这个页面里:

把鼠标放到y上,就能看到详细的错误:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

myAppointment OPA test case issue相关推荐

  1. KBMMW 4.80.00 发布

    一大波更新来了. 4.80.00 March 30 2015 Important notes (changes that may break existing code)         ====== ...

  2. kubernetes test-infra

    image Velodrome velodrome.k8s.io/ 是一个dashboard, monitoring and metrics for Kubernetes Developer Prod ...

  3. BEPs协议:BUMO ATP 30 协议

    BUMO ATP 30 协议 简介 ATP 30(Account based Tokenization Protocol) 是"Non-Fungible Tokens",英文简写为 ...

  4. 英汉翻译词典软件代码

    Private Sub Command1_Click() Dim i, j As String Dim n As Integer i = Text1.Text For n = 1 To 6 Selec ...

  5. 新英汉翻译词典软件vb代码

    Private Sub Command1_Click() Dim i, Z As String Dim n As Integer i = Text1.Text For n = 1 To 960 Sel ...

  6. 链路状态算法实现Java,JAVA基于蚁群算法路由选择可视化动态模拟(开题报告+任务书+毕业论文+外文翻译+源代码+可执行程序+答辩P...

    JAVA基于蚁群算法路由选择可视化动态模拟(开题报告+任务书+毕业论文+外文翻译+源代码+可执行程序+答辩PPT) 摘 要 路由选择是一种基于网络层的协议,而所有流行的网络层路由选择协议都是基于以下两 ...

  7. 数据库自增列增大1000的原因及解决方法

    在使用SQL Server 2012数据库设置自增列时,有时候自增列值突然增大1000,比如这样 不要慌!这是SQL Server 2012故意这么设计的. 原因: 来看看SQL Server 201 ...

  8. Expected 4096KiB chip but found 8192KiB chip

    ESP32 spiram: Expected 4096KiB chip but found 8192KiB chip. Bailing out- E (747) spiram: Expected 40 ...

  9. Apollo 配置中心源码分析

    Apollo 配置中心源码分析 ​ Apollo是携程开源的一款分布式配置管理中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用 ...

最新文章

  1. 这7个实用工具类网站,你用过几个?
  2. VS2017使用过程中得到的一些技巧方法和注意点
  3. mysql没法安装_mysql没法使用、没法启动服务的解决方法
  4. 工作积累(五)——使用spring@Value注解实现常量功能
  5. Android USB转串口开发(hoho.android.usbserial串口库)
  6. 表单新增元素与属性(control、placehoulder、list、AutoComplete、pattern、SelectionDirection、indeterminate属性)
  7. mysql的bind address设置为127 0 0 1 通过localhost连接访问不了
  8. js如何将跨域打开的窗口放到最前面_程序员的强迫症-便捷打开常用网站
  9. 【原创】设计模式面对面之观察者模式
  10. C++11新特性之std::bind()
  11. Java SSM框架简介
  12. 关于SIM900A模块的学习心得
  13. JavaWeb 过滤敏感词汇
  14. 如何进行探索性数据分析
  15. 学计算机的要起一个群名,如何起一个代表青春的群名字
  16. facade设计模式
  17. python协程gevent案例 爬取斗鱼图片过程解析 - python
  18. 设计中的确定性与不确定性思考
  19. E站账号cookie分享_关于亚马逊账买手账号的分类
  20. 道通智能开始招聘啦,待遇超好哦!!!

热门文章

  1. http get请求参数放在url中和放在 header中有什么区别
  2. unity URP内置shader lit解析
  3. ClipperLib库使用说明
  4. 搞搞 Prometheus 的告警原理
  5. 车辆重识别综述(2021年非专业总结)
  6. 时间都去哪儿了——2014年总结
  7. 我的精神分裂——普通青年用二-B的方式走文艺的范儿
  8. MySQL 8.0 新特性之检查约束(CHECK)
  9. 从那堆代码中,你懂得了哪些道理?
  10. Realsense D455/435内参标定以及手眼标定