前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >myAppointment OPA test case issue

myAppointment OPA test case issue

作者头像
Jerry Wang
发布2019-06-20 09:10:00
3680
发布2019-06-20 09:10:00
举报

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

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

代码语言:javascript
复制
<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:

clipboard1
clipboard1

图1

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

clipboard2
clipboard2

图2

clipboard3
clipboard3

图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”。

clipboard4
clipboard4

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

Line 2120亿执行就会出错:

clipboard5
clipboard5

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

clipboard6
clipboard6

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

clipboard7
clipboard7

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

clipboard8
clipboard8
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Sent: Monday, 2 November, 2015 4:04 PM
  • solution
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档