天天看点

myAppointment OPA test case issueSent: Monday, 2 November, 2015 4:04 PM

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

Test case description:

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

myAppointment OPA test case issueSent: Monday, 2 November, 2015 4:04 PM

图1

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

myAppointment OPA test case issueSent: Monday, 2 November, 2015 4:04 PM
myAppointment OPA test case issueSent: Monday, 2 November, 2015 4:04 PM

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

myAppointment OPA test case issueSent: Monday, 2 November, 2015 4:04 PM
myAppointment OPA test case issueSent: Monday, 2 November, 2015 4:04 PM

继续阅读