screening's People
Forkers
eliseosoto zacharyc sfcal99 irinamok mqg734 dmolchanenko amedeomantica leksa davgit kyr0 imclab aadsmdec cdebost nagyistge iq-scmscreening's Issues
Control Room - default scripts fail with Agent is not defined ARGUMENTS: agents
IDART bug 3642
Default scripts fail with 'agent is not defined' error.
0.1.5
Master Branch GIT (Today's fetch)
Steps to Reproduce
- Launch Control Room
- Launch New Agent
- Launch Web Driver agent
- Select an agent (iframe in this example)
- Select a script (Calculator Hotness in this example)
- Select Run
- Select other agent (web driver) and another script (wdyl-search-test)
Results:
Test EXCEPTION - JSON error - agent is not defined - ARGUMENTS: agent (JSON's attached).
Expected Results:
Test to pass or information on how to get the tests to pass.
Screening - File-upload (drag & drop via Finder GUI ) permits drop of file-icon into wrong panel on Control-Room
IDART bug # 3541
File-upload (drag & drop via Finder GUI ) permits drop of file-icon into wrong panel on Control-Room.
If a ( script) file is selected on the platform, and dropped into the file-list of Control-Room in the files list pane, then the C-R browser (Chrome) takes that script file as a text file to render in browser, and over-writes the Control-Room.
Environment set up.
Nodejs : Mac-OS-X,
Control-Room: Mac-OS-X +Chrome
Agent-Type: --not required here --
Agent-platform: Mac-OS-X,
Agent-Browser: Chrome
DataBase Platform: Mac-OS-X.
Steps to Reproduce
- Control-Room browser page and the C-R platform (machine) are up and available
- Create a new js script file Foo.js in the Control-Room platform in some private directory (content: "// comments " is ok).
- Use the file-viewer utility of the platform, and grab the file within the GUI and
drop the file-icon into one of the files of the list-of-files shown in the C-R left-side-panel [ NOT in the area marked "Upload.." ].
Actual Results
- No warning or errors shown, and the file dropped is shown in the page that was the Control-Room GUI.
Expected Results
- A warning indicating that this is not a desirable/ permitted operation
OR,
Allowing this entire panel area to be the drop-file-icon target area, thus permitting the "upload" anywhere in the left panel.
Default Record URL path shouldn't be "/screening/sample/sample.html"
The Default record URL path should be: " /webapps/screening/public/sample/sample.html" instead of "/screening/sample/sample.html"
Performance issue on loading app and switching from Preferences screen
It takes a while to load Screening for the first time. It also takes a while to switch from Preferences screen (by pressing Home button) to the main screen - in this scenario the last selected script shows no details - I have to refresh page which is annoying. Anything we can do about it?
We need to have a setting to leave an AUT open after completion of recording or playback
IDART bug # 3590
We need to have a setting to leave an AUT open after completion of recording or playback
Synchronization issue with webdriver - auto sync doesn't wait for page load
IDART bug 3629
Browser: 14.0.835.202.
Set preferences:
Global Timeout: 200
Sync mode: auto.
Execute the following ninja script on webdriver agent:
// ==== Start Recorded Script, Mon Oct 24 2011 10:46:09 GMT-0700 (PDT)====
var agent = new Agent();
agent.gotoUrl("/webapps/js-authoringtool/MainApp/index.html");
agent.setWindowSize(1154, 858);
agent.element("//[@id='preloader']").mouseMoves([{"x":674,"y":10,"duration":0},{"x":663,"y":120,"duration":30},{"x":700,"y":216,"duration":248},{"x":685,"y":216,"duration":226}]);
agent.element("//[@id='iframeContainer']").setScrollTo(700,260);
agent.element("//[@id='preloader']").mouseMoves([{"x":685,"y":216,"duration":0},{"x":530,"duration":2197}]);
agent.element("//[@id='topMenu']").mouseMoves([{"x":531,"y":2,"duration":0},{"x":526,"y":16,"duration":14}]);
agent.element("//[@id='topSplitter']").mousemove({"clientX":522,"clientY":34});
agent.element("//[@id='toolsProperties']").mousemove({"clientX":517,"clientY":54});
agent.element("//[@id='openDocuments']").mouseMoves([{"x":506,"y":98,"duration":0},{"x":502,"y":113,"duration":9}]);
agent.element("//[@id='stageCanvas']").mouseMoves([{"x":496,"y":136,"duration":0},{"x":478,"y":208,"duration":83},{"x":456,"y":230,"duration":50},{"x":210,"y":211,"duration":217},{"x":154,"y":230,"duration":33},{"x":119,"y":252,"duration":17},{"x":81,"y":296,"duration":1118}]);
agent.element("//[@id='toolsList-toolscontainer-toolbutton-9']/DIV").mousemove({"clientX":35,"clientY":317});
agent.element("//[@id='stageCanvas']").mouseMoves([{"x":231,"y":453,"duration":0},{"x":345,"y":400,"duration":15},{"x":594,"y":310,"duration":17},{"x":809,"y":268,"duration":17}]);
agent.element("//[@id='cp_spectrum']/CANVAS").mouseMoves([{"x":926,"y":256,"duration":0},{"x":926,"y":256,"duration":616}]);
agent.element("//[@id='rulerLeft']").mousemove({"clientX":64,"clientY":246});
agent.element("//[@id='toolsList-toolscontainer']").mouseMoves([{"x":55,"y":254,"duration":0},{"x":54,"y":257,"duration":117}]);
agent.element("//[@id='toolsList-toolscontainer-toolbutton-6']/DIV").mousemove({"clientX":51,"clientY":262});
agent.element("//[@id='toolsList-toolscontainer-toolbutton-7']/DIV")
.mouseMoves([{"x":45,"y":269,"duration":0},{"x":41,"y":277,"duration":53}])
.click({"clientX":41,"which":1,"clientY":277,"detail":1})
.mouseMoves([{"x":40,"y":277,"duration":0},{"x":49,"y":269,"duration":316}]);
/agent.element("//[@id='toolsList-toolscontainer']").mousemove({"clientX":57,"clientY":261});
agent.element("//[@id='rulerLeft']").mouseMoves([{"x":65,"y":257,"duration":0},{"x":71,"y":251,"duration":33}]);
agent.element("//[@id='stageCanvas']").mouseMoves([{"x":80,"y":244,"duration":0},{"x":109,"y":214,"duration":66},{"x":163,"y":134,"duration":150}]);
agent.element("//[@id='rulerTop']").mousemove({"clientX":169,"clientY":124});
agent.element("//[@id='openDocuments']").mouseMoves([{"x":175,"y":111,"duration":0},{"x":181,"y":95,"duration":183}]);
agent.element("//[@id='topPanel']").mousemove({"clientX":189,"clientY":83});
agent.element("//[@id='toolsProperties']").mouseMoves([{"x":194,"y":75,"duration":0},{"x":199,"y":67,"duration":16}]);
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").mousemove({"clientX":203,"clientY":58});
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[2]").mousemove({"clientX":207,"clientY":51});
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']").mousemove({"clientX":208,"clientY":47});
agent.element("//[@id='topSplitter']").mouseMoves([{"x":210,"y":41,"duration":0},{"x":204,"y":43,"duration":183}]);
agent.element("//[@id='toolsProperties']").mousemove({"clientX":203,"clientY":45});
/
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']").click();
agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").focus();
var a = agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").getText();
agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").setAttribute('value',"");
//agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").keypress(13);
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").keypress({"keyIdentifier":"U+0031","which":49});
//agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").keyPress({"keyIdentifier":"U+0008","which":8});
agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/INPUT[1]").keyPresses("ABC");
agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").keyPress("2");
//var a = agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").getAttribute('innerHTML');
console.log(a);
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").setAttribute('innerText',"23");
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").dispatchEvent('keydown','3');
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").dispatchEvent('keypress','3');
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").dispatchEvent('keyup','3');
agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").keyPresses("ABC");
a = agent.element("//*[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").getAttribute('innerHTML');
console.log(a);
agent.wait(8000);
/agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]")
.mouseMoves([{"x":201,"y":49,"duration":0},{"x":205,"y":63,"duration":489}])
.mousedown({"clientX":205,"which":1,"clientY":63,"detail":1});
agent.wait(279);
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[1]").mousemove({"clientX":206,"which":1,"clientY":63});
agent.element("//[@id='toolsProperties']").mouseMoves([{"x":207,"y":63,"duration":0},{"x":212,"y":63,"duration":251}]);
agent.element("//[@id='toolsProperties-shapeProperties-strokeControl']/SPAN[2]")
.mouseMoves([{"x":213,"y":62,"duration":0},{"x":221,"y":60,"duration":1413}])
.mouseup({"clientX":221,"which":1,"clientY":60,"detail":1})
.mouseMoves([{"x":221,"y":60,"duration":0},{"x":220,"y":60,"duration":315}]);
agent.element("//[@id='toolsProperties']").mousemove({"clientX":220,"clientY":67});
agent.element("//[@id='topPanel']").mousemove({"clientX":222,"clientY":77});
agent.element("//[@id='openDocuments']").mouseMoves([{"x":226,"y":93,"duration":0},{"x":230,"y":107,"duration":17}]);
agent.element("//[@id='rulerTop']").mousemove({"clientX":237,"clientY":122});
agent.element("//[@id='stageCanvas']")
.mouseMoves([{"x":242,"y":138,"duration":0},{"x":261,"y":213,"duration":167},{"x":254,"y":210,"duration":199}])
.mousedown({"clientX":254,"which":1,"clientY":210,"detail":1})
.mouseMoves([{"x":257,"y":209,"duration":0},{"x":394,"y":217,"duration":199},{"x":437,"y":347,"duration":317}])
.mouseup({"clientX":437,"which":1,"clientY":347,"detail":1});
agent.wait(322);
agent.element("//[@id='stageCanvas']")
.click({"clientX":437,"which":1,"clientY":347,"detail":1})
.mouseMoves([{"x":436,"y":347,"duration":0},{"x":248,"y":308,"duration":85},{"x":157,"y":266,"duration":33},{"x":95,"y":226,"duration":17}]);
agent.element("//[@id='toolsList-toolscontainer-toolbutton-3']/DIV").mousemove({"clientX":43,"clientY":182});
agent.wait(920);
agent.element("//[@id='editPencil']").mousemove({"clientX":885,"clientY":60});
agent.element("//[@id='toolsProperties']").mousemove({"clientX":943,"clientY":73});
agent.element("//*[@id='openDocuments']").mouseMoves([{"x":746,"y":99,"duration":0},{"x":746,"y":99,"duration":5}]);
// ==== End Recorded Script ====
*/
Execution fails with exception:
Exception 41 / 7
Element must be displayed to click
3868 ms
Automatic runs
I haven't looked into this too much, and the REST API might be appropriate, but how would we run tests in screening automatically, on a post-commit git hook for example?
[I.M.] Currently our UI allows execution of one test case at a time, which is bad. We should be able to execute scripts in batch mode. Can you log a feature request for us? Currently you can execute multiple tests trough REST API.
Control-Room GUI: viewing file in script editor: entering search string characters results in graphical artifacts - ghost scroll-bars
IDART bug 3626
GUI flashes on each key entered in the search-text window
Flashes show a vertical white scroll bar in files-list, blue horizontal scroll-bar in editor top panel.
Chrome browser, on Mac.OSX environment.
Actual environment:
Screening v0.1.5+ , 10/24.
"Nodejs : Mac-OS-X,
Control-Room: Mac-OS-X +Chrome
DataBase Platform: Mac-OS-X.
Agent-Type: any
Agent-platform: - not used
Agent-Browser: - not used
Steps To Recreate
- Bring up GUI of control-room with system running, in files-list panel set "name" as search criteria
- From file list, select one file to view
- View the file, then move cursor/mouse to the files-list panel, search-text window
- Delete All characters in the text-window ( until the X icon for "delete string"
has disappeared from the right-hand-side of text-window). - Now enter a letter, "T" for the first letter of search string. Watch the display change / contents change
- Continue entering single letters, to the search string... noting the graphics and other changes
Actual Results
- Entry of FIRST char causes a change in the files-list-ordering... back to default "alphabetical" (?).
- Each letter entered results in graphics artifacts as described above.
Expected Results
- No shift-in-files-list position (?)
- No graphical artifacts.
Playback of Ninja App does not show dragged Montage Components from Component Panel on the stage.
IDART bug 3635
Environment set up.
Nodejs : Mac-OS-X,
Agent-Type: iFrame
Agent-platform: Mac-OS-X
Agent-Browser: Chrome 15.0.874.106
Screening v0.1.5
Steps to reproduce
- Create a new iFrame agent.
- On recording the gotoUrl is "/webapps/js-authoringtool/MainApp/index.html".
- Drag Montage Components such as image container, slider, toggle button from Component Panel to stage.
- Stop recording and playback the script.
Actual Result
Playback is not showing any of the dragged montage components on stage.
Expected Result
Playback should show all dragged montage components on stage.
Preferences screen - Home button is missing
Go to preferences screen. There used to be a button "Home" which would bring users back to control room. We have to either:
a) out the button back
b) open Preferences screen in a new tab (just like results screen)
REST API: GET request, on scripts using bad "script-Id" which was a test-result-Id, results EXIT of node server ; mongodb returned " empty record" and continued.
IDART bug # 3618
v0.1.5,
All-Mac-OSX environment, browser=Chrome.
A test was run, and the test-result-Id was requested, with the keyword accidentally indicating 'scripts' instead of test_results.
This resulted in mongodb returning apparently an empty record;
server fails to recover ( expecting a full test-result record?).
Steps to Reproduce
- Set up Screening server on Mac-OSX; v015 screening.
Use the Control-Room GUI to find All-results, and one test-result-Id that can be viewed - Issue the REST-API request , using a VALID test-result-Id, via incorrect curl command:
curl -v --noproxy localhost -X GET 'http://localhost:8081/screening/api/v1/scripts/4ea1b3678dfe82f931000005?api_key=5150'
(Correct query would use 'test_results' , not 'scripts' ) .
Actual Results indicated:
- curl command Responses:
- About to connect() to localhost port 8081 (#0)
- Trying 127.0.0.1... connected
- Connected to localhost (127.0.0.1) port 8081 (#0)
GET /screening/api/v1/scripts/4ea1b3678dfe82f931000005?api_key=5150 HTTP/1.1
User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8r zlib/1.2.3
Host: localhost:8081
Accept: / - Empty reply from server
- Connection #0 to host localhost left intact
curl: (52) Empty reply from server - Closing connection #0
null-c8bcc89cfb91:Rest-apis rwjm37$
- Output At the node-server console/window:
GET Scripts/:id 4ea1b3678dfe82f931000005
Couldn't connect to MongoDB, plese check /docs/MongoDb.md for info on how to setup the MongoDB server undefined
null-c8bcc89cfb91:screening rwjm37$
< node server > process has died and needs to be re-launched.
Fix Component Test.js
Run Component Test. You'll get an exception:
//form/div[2]/input[contains(@Class, 'montage-textfield')]: The element could not be found
Can't add driver when running on different port
When I run screening on a non-default port through node server --port=8082
adding a driver fails. I think it might be to do with websockets/socket.io and the access origin policy as there was an error in the console to this effect, although I can't reproduce it.
click() method is not working on iFrame agent
IDART bug # 3583
Inv dev branch execute the following script (on iFrame agent):
var agent = new Agent();
agent.gotoUrl("/screening/control-room/ui-sample.html");
var checkbox = agent.element("#testCheckbox");
assertFalse(checkbox.isChecked());
checkbox.click();
assertTrue(checkbox.isChecked());
Checkbox is not checked (the same script runs successfully on webdriver)
Can't record script
When I try and record with an attached Chrome driver nothing happens. I click "Stop recording" and the following is placed in the editor:
{"error":"Cannot call method 'emit' of undefined","stack":"TypeError: Cannot call method 'emit' of undefined\n at Function.<anonymous> (/Users/xxxxxx/Documents/projects/screening/server/lib/webdriver-agent.js:158:20)\n at /Users/xxxxxx/Documents/projects/screening/server/rest-api/agents.js:162:28\n at callbacks (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:272:11)\n at param (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:246:11)\n at param (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:243:11)\n at pass (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:253:5)\n at Router._dispatch (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:280:4)\n at Object.handle (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/router/index.js:45:10)\n at next (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/node_modules/connect/lib/http.js:203:15)\n at Object.handle (/Users/xxxxxx/Documents/projects/screening/server/node_modules/express/lib/http.js:83:5)"}
If app can't be loaded node server crashed
We should timeout after a given timeout value and give an exception in the results if an app is not loaded (or if an element is not found), but not crash node server!
/Users/ntvd76/workspace/screening/server/lib/webdriver/util.js:232
var retBody = JSON.parse(body);
^
ReferenceError: body is not defined
at IncomingMessage. (/Users/ntvd76/workspace/screening/server/lib/webdriver/util.js:232:17)
at IncomingMessage.emit (events.js:81:20)
at HTTPParser.onMessageComplete (http.js:133:23)
at Socket.ondata (http.js:1231:22)
at Socket._onReadable (net.js:683:27)
at IOWatcher.onReadable as callback
Record + Pause: Agent shows DOM inspector, which can't be removed; continued + Resume recording shows further errors in UI with big blocks of color, no response to input
IDART bug # 3570
The results seen in the failed Record+Pause+Resume operation on the URL are in addition to:
suspected DIV element counts going off during resume-recording - elements not on the page are attempted to be addressed in the recording.
[ Playback will show this last result].
TC#045 - on iFrame, not Webdriver
Fails with DOM inspector turned On after pause & resume. Blocks of color on url, no response to user mouse movements, kboard.
User has to click a few times on a script to get it selected
When script run is finished user gets a pop-up message with results. When user switches back to the control room after viewing test results selection of a new script is problematic. I have to click 3-4 times on a script to get it selected.
Update existing scripts and create new scripts
We need to update existing scripts in sample_tests directory and create new scripts for:
uuid-generator app (Irina)
todo-mvc app (Irina)
temp-converter (Irina)
sink app (Brandon)
photofx app (Zack)
mixed-list app (Eliseo)
app-template app (Eliseo)
calculator (Irina)
Send result summary via email
IDART bug 3632
Screening:
Currently playback of our script display results in html format. Can we get those results via email?
This will help us to send our script result across the team.
Popup buttons look funny
- custom dropdowns
THI: WebDriver: mouseClick() api does not with chrome for web driver
IDART bug # 3580
WebDriver: mouseClick() api does not with chrome for web driver
script path : http://10.72.32.11/screening/api/v1/scripts/defect.js
gets an exception: Unable to locate element
var x = agent.element("//*[@id='monthdiv#7']");
x.mouseClick();
Results seen for webdriver
START Start test run /
Starting test run at 2011-10-07T22:10:34.797Z ms
PASS assertEqual 14 / 1
Actual value: "Calendar"
Expected value: "Calendar"
Message: Verification of the title
570 ms
EXCEPTION Exception 18 / 15
Unable to locate element
596 ms
END End test 46 /
End test run at 2011-10-07T22:10:35.723Z
926 ms
Works for Iframe Results of the script
START Start test run /
Starting test run at 2011-10-07T22:09:17.211Z
ms
PASS assertEqual 14 / 1
Actual value: "Calendar"
Expected value: "Calendar"
Message: Verification of the title
1230 ms
PASS assertContains 25 / 2
Actual value: "August 2011"
Expected value: "August"
Message: Verification of the month title after clicking on the month
4735 ms
END End test 46 /
End test run at 2011-10-07T22:09:22.950Z
5739 ms
"Your Script has been added" should be...
"Your script has been added" for 1 script and "Your scripts have been added" for multiple scripts
Upgrade Montage to v0.6
Update submodule and modify the existing code to make it compatible.
Screening Control-Room: method to select multiple agents (for RUN of script) is not documented, implemented.
IDART bug # 3576
Major feature is not yet implemented.
The user is supposed to be able to select (by mouse/keyboard operation in some manner) more than one existing agent, for 'Run' operation of the desired script.
ChromeDriver Version 18.0.1022.0 is not working
ChromeDriver Version 18.0.1022.0 is not working and throwing "NSAutoreleaseNoPool()- autoreleased with no pool in place" error.
LOG:
Started ChromeDriver
port=9515
version=18.0.1022.0
log=/Users/knft38/chromedriver.log
2012-01-31 16:48:08.603 chromedriver 2[14426:1203] *** __NSAutoreleaseNoPool(): Object 0x400330 of class NSPathStore2 autoreleased with no pool in place - just leaking
2012-01-31 16:48:08.607 chromedriver 2[14426:1203] *** __NSAutoreleaseNoPool(): Object 0x403770 of class NSPathStore2 autoreleased with no pool in place - just leaking
2012-01-31 16:48:08.607 chromedriver 2[14426:1203] *** __NSAutoreleaseNoPool(): Object 0x4004c0 of class NSConcreteData autoreleased with no pool in place - just leaking
2012-01-31 16:48:08.607 chromedriver 2[14426:1203] *** __NSAutoreleaseNoPool(): Object 0xa01794d8 of class NSCFString autoreleased with no pool in place - just leaking
2012-01-31 16:48:08.608 chromedriver 2[14426:1203] *** __NSAutoreleaseNoPool(): Object 0x400bb0 of class NSBundle autoreleased with no pool in place - just leaking
2012-01-31 16:48:38.604 chromedriver 2[14426:1403] *** __NSAutoreleaseNoPool(): Object 0x117020 of class NSConcreteData autoreleased with no pool in place - just leaking
2012-01-31 16:48:38.605 chromedriver 2[14426:1403] *** __NSAutoreleaseNoPool(): Object 0xa01794d8 of class NSCFString autoreleased with no pool in place - just leaking
2012-01-31 16:48:38.605 chromedriver 2[14426:1403] *** __NSAutoreleaseNoPool(): Object 0x400bb0 of class NSBundle autoreleased with no pool in place - just leaking
2012-01-31 16:49:08.603 chromedriver 2[14426:1503] *** __NSAutoreleaseNoPool(): Object 0x4005d0 of class NSConcreteData autoreleased with no pool in place - just leaking
2012-01-31 16:49:08.604 chromedriver 2[14426:1503] *** __NSAutoreleaseNoPool(): Object 0xa01794d8 of class NSCFString autoreleased with no pool in place - just leaking
2012-01-31 16:49:08.605 chromedriver 2[14426:1503] *** __NSAutoreleaseNoPool(): Object 0x400bb0 of class NSBundle autoreleased with no pool in place - just leaking
2012-01-31 16:49:38.603 chromedriver 2[14426:1303] *** __NSAutoreleaseNoPool(): Object 0x403850 of class NSConcreteData autoreleased with no pool in place - just leaking
2012-01-31 16:49:38.604 chromedriver 2[14426:1303] *** __NSAutoreleaseNoPool(): Object 0xa01794d8 of class NSCFString autoreleased with no pool in place - just leaking
2012-01-31 16:49:38.604 chromedriver 2[14426:1303] *** __NSAutoreleaseNoPool(): Object 0x400bb0 of class NSBundle autoreleased with no pool in place - just leaking
Fix UI issue when no scripts are selected
Open Screening Control Room. Do not select any script - right hand side should be fixed
Key.Backspace is not working
Try to execute:
// ==== Start Recorded Script, Wed Feb 15 2012 12:46:37 GMT-0800 (PST)====
var agent = new Agent();
agent.gotoUrl("/screening/samples/sample.html");
agent.setWindowSize(927, 988);
agent.mouseMove([{"x":423,"y":128,"duration":0},{"x":423,"y":118,"duration":222}]);
agent.element("//*[@id='textField']")
.click(Mouse.LEFT,85,13)
.sendKeys("test");
agent.mouseMove([{"x":426,"y":119,"duration":0},{"x":555,"y":236,"duration":84},{"x":547,"y":202,"duration":233},{"x":395,"y":208,"duration":384},{"x":241,"y":226,"duration":133},{"x":319,"y":241,"duration":167},{"x":332,"y":237,"duration":16},{"x":361,"y":206,"duration":34},{"x":369,"y":182,"duration":33},{"x":363,"y":161,"duration":34},{"x":347,"y":151,"duration":33},{"x":325,"y":151,"duration":150},{"x":320,"y":143,"duration":100},{"x":310,"y":147,"duration":300}]);
agent.mouseDown(310,147);
agent.mouseMove([{"x":313,"y":147,"duration":0},{"x":385,"y":148,"duration":84},{"x":441,"y":139,"duration":83}]);
agent.mouseUp(441,139);
agent.mouseMove([{"x":443,"y":140,"duration":0},{"x":523,"y":193,"duration":150},{"x":634,"y":240,"duration":30},{"x":772,"y":261,"duration":49},{"x":869,"y":261,"duration":34},{"x":914,"y":253,"duration":17}]);
// ==== End Recorded Script ====
agent.wait(2000);
// ==== Start Recorded Script, Wed Feb 15 2012 12:46:52 GMT-0800 (PST)====
var agent = new Agent();
agent.mouseMove([{"x":393,"y":110,"duration":0},{"x":460,"y":148,"duration":251}]);
agent.element("//*[@id='textField']")
.sendKeys(Key.BACKSPACE)
.sendKeys(Key.BACKSPACE)
.sendKeys(Key.BACKSPACE);
agent.mouseMove([{"x":469,"y":152,"duration":0},{"x":486,"y":142,"duration":66},{"x":568,"y":141,"duration":50},{"x":858,"y":153,"duration":67}]);
// ==== End Recorded Script ====
assertEqual("t", agent.element("//*[@id='textField']").getText());
More regressions in script execution - sendKeys
Eliseo,
We need to do more cleanups at assure our scripts continue to run. Now I see this exception -
Exception 27 / 9
Failed to parse command data: Line: 1, column: 14, Syntax error.
Data: {"value":["๎"
in line: celsius.sendKeys(Key.BACKSPACE);
Please fix
Regression in script.require
Eliseo,
We had this issue when we moved to the DB, and you fixed it a while ago. Now I'm seeing the same symptoms: execute test-script, it fails with exception: The required script '_test-required-script' does not exist.
_test-required-script is in the DB. Please take a look
jasmine tests in rest-api-spec.js fails because port number 8081 is hardcoded inside public/agent/lib/iframe-agent.js , so will not work when screening server is on port 8082
IDART bug # 3585
Jasmine tests which uses phantomjs in rest-api-spec.js fails.
To execute rest-api-spec.js , screening server is set up at port 8082 on the local machine.
Phantomjs is used to create an iframe agent which is supposed to connect to screening server at port number 8082.
But in the file public/agent/lib/iframe-agent.js, port number 8081 is hardcoded. Because of this, the iframe agent tries to connect to screening server at port number 8081 which doesnt exist. But its supposed to connect to screening server at port 8082.
Layout borked in Firefox due to missing -moz- flexbox prefixes
There are a number of layout issues in Firefox due to only using -webkit- prefixes ::sad panda::
Iโve not spent a huge time looking at it, but I got it mostly working by adding -moz- prefix as well for all the box properties.
A number of gradients and box-shadows also have missing -moz- (and other) prefixes.
There are still issues I've not had the chance to look at properly when fixing these issues. They may or may not be easy to fix:
- Toolbars don't stretch to 100% of the width of the page
- The second toolbar (name and tags, and the name and search fields) break onto two lines. This looks to be because they get display: block set in the style sheet. Removing that more or less fixes the issue. I'm not sure why but the display: block doesn't get used by WebKit (doesn't show in the rule in Web Inspector), although it is in the original file downloaded (which you can see in the resource inspector).
Fix those and you'e 99% of the way to making the layout to work in Firefox.
Execution of script through selenium remote webdriver crashes node server
IDART bug # 3578
- Download Selenium Server (v 2.8.0) (from http://seleniumhq.org/download/)
- Start selenium server (java -jar ./selenium-server-standalone-2.8.0.jar)
- In screening control room add remote webdriver as an agent by providing this URL: http://127.0.0.1:4444/wd/hub
You'll see the agent is added successfully - Execute google-search-test.js on this agent - node server crashes:
SyntaxError: Unexpected token ILLEGAL
at Object.parse (native)
at [object Object].callback (/Users/ntvd76/workspace/screening/server/lib/webdriver/util.js:185:36)
at [object Object]. (/Users/ntvd76/workspace/screening/server/node_modules/request/main.js:294:21)
at [object Object].emit (events.js:64:17)
at IncomingMessage. (/Users/ntvd76/workspace/screening/server/node_modules/request/main.js:281:54)
at IncomingMessage.emit (events.js:81:20)
at HTTPParser.onMessageComplete (http.js:133:23)
at Socket.ondata (http.js:1231:22)
at Socket._onReadable (net.js:683:27)
at IOWatcher.onReadable as callback
Screening - "All Results" html page in Control-Room: should support column-sorting on Agent / Script / Name fields.
IDART bug # 3536
"Major-Enhancement" request : will probably be extremely useful.
The All-Results html page has the columns as below:
Name Agent Script Start End Summary .
Name is initially undefined, to be updated as desired by user; Agents, Scripts sorting would be useful in multi-node perf. tests etc.
Currently ordered by Start(?) time.
Control-Room: Reload of page has unexpected behavior in main script-editor-window - resets to specific (last ?) file in list.
IDART bug # 3565
A user will "re-load" the Control-Room page to determine the exact agents connected to the Control Room,
and this will erase all work done on the script in the edit-script panel,
in the case of the "Reload" operation being launched via right-mouse-click when user was @ edit-panel .
Mac-OS-X for node, server, C-R platform; C-R browser is Chrome.
Currently (v 0.1.4) screening will re-set to the file "wdyl-search-test" (.js) on a re-load requested as above.
This design problem is complicated .. depends on how the reload originated, etc.
Steps to Reproduce
- On the C-R Platform, go to Control-Room page in browser, with an old script file XYZ.js
in script editor panel. - Edit, by adding the following few lines in the script file:
// comment 1
// comment 2
// We are done.
DO NOT SAVE the edits.
3. With mouse on the edit-panel or the edit-header-panel, click the mouse-right-button fully,
the menu with "Reload" option should come up.
(Otherwise, click the left-mouse-button completely and retry the right-button click again.)
- Select the "Reload" option in the menu with a click of mouse. Note the file shown after reload.
- CHeck the contents of file XYZ used above.
Actual Results
- Menu appears with "Reload" option present.
- Control-Room GUI is reset, with the file "wdyl-search-test" shown in editor, and no warnings of edits lost.
- No edits saved on file XYZ.
Expected Results ( Normal Editor behavior)
- Either a warning dialog box, or, commit the edits and continue to re-load..with the SAME file XYZ shown.
- Results in file XYZ as in user's response to dialog-box query.
Fix scripts after update to 0.6
Control-Room GUI: using script editor with un-saved updates: moving to Preferences screen is not update-safe ; unsaved file updates are lost , no warning.
IDART bug 3628
While using the script file editor, unsaved updates in editor are not triggering a warning when
user moves over to the Preferences page.
On return to the main editor page, the file editor updates are lost.
Chrome browser, on Mac.OSX environment.
Actual environment:
Screening v0.1.5+ , 10/24.
"Nodejs : Mac-OS-X,
Control-Room: Mac-OS-X +Chrome
DataBase Platform: Mac-OS-X.
Agent-Type: not used
Agent-platform: - not used
Agent-Browser: - not used
Steps To Recreate
- Bring up GUI of control-room with system running
- From file list, select one file to view, make some edits at top lines of file,
DO NOT press Save. - Move cursor/mouse to the "*Preferences" button, press it to enter preferences screen.
- Preferences screen.... view and return to prior page with Browser-BACK-button.
- GUI shows control-room with File-editor view as before..
Actual Results
- No warning or preventive action...
- View shows lost updates on the file.
Expected Results
3: Warning / disallowed action / autosave (dialog box) when EXITING the file-editor with updates
iFrame agent - issues with special characters (record and playback)
IDART bug # 3623
There are 2 issues here - on record and playback side, but I'm logging it as one bug.
Issue #1 - on recording part - we record record only "keyup" and "keydown" for special characters (not keypress). See the script below - "123" was recorded properly, but 3 "delete" keys are missing "keypress" event:
// ==== Start Recorded Script, Mon Oct 24 2011 15:52:21 GMT-0700 (PDT)====
var agent = new Agent();
agent.gotoUrl("/screening/sample.html");
agent.setWindowSize(1154, 858);
agent.element("/HTML").mouseMoves([{"duration":0},{"x":188,"y":1,"duration":2844}]);
agent.element("/HTML/BODY/H1").mousemove({"clientX":223,"clientY":22});
agent.element("/HTML/BODY").mouseMoves([{"x":277,"y":59,"duration":0},{"x":297,"y":73,"duration":16}]);
agent.element("/HTML/BODY/FORM").mousemove({"clientX":329,"clientY":97});
agent.element("/HTML/BODY/FORM/DIV[1]/LABEL").mousemove({"clientX":365,"clientY":117});
agent.element("/HTML/BODY/FORM/DIV[1]").mousemove({"clientX":399,"clientY":129});
agent.element("//[@id='slider']").mouseMoves([{"x":427,"y":136,"duration":0},{"x":486,"y":136,"duration":83}]);
agent.element("/HTML/BODY/FORM/DIV[1]").mousemove({"clientX":488,"clientY":132});
agent.element("//[@id='textField']")
.mouseMoves([{"x":489,"y":130,"duration":0},{"x":494,"y":108,"duration":216}])
.click({"clientX":494,"which":1,"clientY":108,"detail":1})
.mouseMoves([{"x":494,"y":109,"duration":0},{"x":495,"y":112,"duration":150}])
.keydown({"keyIdentifier":"U+0031","which":97})
.keypress({"keyIdentifier":"U+0031","which":49})
.keyup({"keyIdentifier":"U+0031","which":97});
agent.wait(751);
agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0032","which":98})
.keypress({"keyIdentifier":"U+0032","which":50})
.keyup({"keyIdentifier":"U+0032","which":98});
agent.wait(334);
agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0033","which":99})
.keypress({"keyIdentifier":"U+0033","which":51})
.keyup({"keyIdentifier":"U+0033","which":99});
agent.wait(2776);
agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0008","which":8})
.keyup({"keyIdentifier":"U+0008","which":8});
agent.wait(865);
agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0008","which":8})
.keyup({"keyIdentifier":"U+0008","which":8});
agent.wait(720);
agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0008","which":8})
.keyup({"keyIdentifier":"U+0008","which":8})
.mouseMoves([{"x":493,"y":112,"duration":0},{"x":489,"y":129,"duration":383},{"x":464,"y":129,"duration":50}]);
agent.element("/HTML/BODY/FORM/DIV[1]").mousemove({"clientX":450,"clientY":128});
agent.element("/HTML/BODY/FORM/DIV[1]/LABEL").mouseMoves([{"x":419,"y":126,"duration":0},{"x":371,"y":125,"duration":16}]);
agent.element("/HTML/BODY/FORM").mousemove({"clientX":307,"clientY":125});
agent.element("/HTML/BODY").mouseMoves([{"x":274,"y":125,"duration":0},{"x":15,"y":127,"duration":67}]);
// ==== End Recorded Script ====
Issue #2 - iFrame agent doesn't playback special characters.
If you modify the script above to add "keypress" for "delete" like this:
agent.element("//*[@id='textField']")
.keydown({"keyIdentifier":"U+0008","which":8})
.keypress({"keyIdentifier":"U+0008","which":8})
.keyup({"keyIdentifier":"U+0008","which":8})
and playback the script you'll see it works properly through webdriver, but doesn't work (delete key is not pressed) in iFrame
Display URL to control-room when Screening server starts
It would be nice if the message you see after successfully starting screening included the URL to the control room app, since it's the main UI.
So you'd see something like this:
$ node server/
[agents] express app was mounted.
...
Screening Server running on port 8081 [development]
Screening Control Room: http://localhost:8081/screening/control-room/index.html
Connected to MongoDB server on localhost:27017, database: screening
Found a webdriver instance running at http://localhost:9515. Added it as an Agent by default.
Remove button group components
@simurai has mentioned that he no longer depends on the styles added by the button group component. As such we should remove them. All that needs to stay is the div with the appropriate class.
Chromedriver agent should open as a full size browser window.
IDART bug 3666
Currently chromedriver agent opens with a specific window size "agent.setWindowSize(927, 985);".
It should open as a full size browser window.
RCA: WebDriver: mouseClick() api does not with chrome for web driver
IDART bug 3579
WebDriver: mouseClick() api does not with chrome for web driver
script path : http://10.72.32.11/screening/api/v1/scripts/defect.js
gets an exception: Unable to locate element
var x = agent.element("//*[@id='monthdiv#7']");
x.mouseClick();
Results seen for webdriver
START Start test run /
Starting test run at 2011-10-07T22:10:34.797Z ms
PASS assertEqual 14 / 1
Actual value: "Calendar"
Expected value: "Calendar"
Message: Verification of the title
570 ms
EXCEPTION Exception 18 / 15
Unable to locate element
596 ms
END End test 46 /
End test run at 2011-10-07T22:10:35.723Z
926 ms
Works for Iframe Results of the script
START Start test run /
Starting test run at 2011-10-07T22:09:17.211Z
ms
PASS assertEqual 14 / 1
Actual value: "Calendar"
Expected value: "Calendar"
Message: Verification of the title
1230 ms
PASS assertContains 25 / 2
Actual value: "August 2011"
Expected value: "August"
Message: Verification of the month title after clicking on the month
4735 ms
END End test 46 /
End test run at 2011-10-07T22:09:22.950Z
5739 ms
Recording: Pause,Resume recording on iFrame agent: recorded script has incorrect DIV numbering, goes beyond html-page DIV numbers.
IDART bug # 3571
S/w : Screening v0.1.4
Set-Up:
Nodejs : Mac-OS-X,
Control-Room: Mac-OS-X +Chrome
Agent-Type: iFrame
Agent-platform: Mac-OS-X,
Agent-Browser: Chrome
DataBase Platform: Mac-OS-X.
This bug is the continuation of the problem noted in Jira # 3570 [DOM can't be quit after Record+Pause ].
The 'resume recording' operation fails to show the feedback on Url correctly and:
the DIV numbers recorded in the script for any attempted action on the Url are incorrect.
[TC#045, BAT]
Steps to reproduce
- On the C-R GUI, start a NEW script, name it, save it;
- From Control-Room GUI, start Recording, using an iFrame agent selected,
and use goto-Url = /screening/control-room/ui-sample.html - Go to agent window running script..
4. - On the C-R Platform, go to Control-Room GUI in browser
- Start a NEW script, empty.
- Select/ create-and-select a local iFrame Agent (C-R platform )
- Click Menu-Bar--> Record
- URL is requested, enter
"/screening/control-room/ui-sample.html" and hit OK. - GO TO the Agent window...running the test
During the "recording" operation, make specific mouse movements, keyboard input, etc. - PAUSE the Recording via the "Pause Recording" button on the menu-bar. Pause for 10 seconds or so.
- Continue recording using the "Resume Recording" button.
- During the resumed "recording" operation, make specific mouse movements, keyboard input, etc. that can be recognized as done later, in the script.
- Press the "Stop Recording" button, and then SAVE the script; examine script or RUN it back (playback).
Actual Results
- No feedback / response to UI on the page...
- Script contains incorrect DIV [x] references.
Shown below is the of script recorded for /screening/control-room/ui-sample.html, after 'resume'.
File of recorded-script is RecordPause-Resume-F2.js, attached.
Attempt to RUN the recorded file: Test-Result on iframe agent results in the error below:
EXCEPTION Object 181 / 7 No such element! Query was: "/HTML/BODY/DIV[13]" (Error code: 7)
====================== Fragment begin....
// TOP OF FILE...
// Record, pause, resume from Control Room GUI.
//i-Frame agent selected,
// gotoUrl is ... ui-sample.html .
// ==== Start Recorded Script, Fri Oct 07 2011 18:52:51 GMT-0700 (PDT)====
var agent = new Agent();
agent.gotoUrl("/screening/control-room/ui-sample.html");
...
...
... < first REC session.. contents OK ...>
//Paused... Return to Agent with Resume-recording:
// ==== End Recorded Script ====
// ==== Start Recorded Script, Fri Oct 07 2011 18:56:40 GMT-0700 (PDT)====
//var agent = new Agent(); commented out this repeated Agent creation..
//agent.setSize(1329, 730); .commented out this: known bug.
// Note next line: there aren't 13 DIVs in the goto Url ui-sample.html.
agent.element("/HTML/BODY/DIV[13]")
.mouseMoves([{"x":236,"y":163,"duration":0},{"x":210,"y":154,"duration":16},{"x":183,"y":5,"duration":1953},{"x":241,"y":94,"duration":66},{"x":316,"y":160,"duration":83}])
.mousedown({"clientX":316,"which":1,"clientY":160,"detail":1})
.mouseup({"clientX":316,"which":1,"clientY":160,"detail":1})
.click({"clientX":316,"which":1,"clientY":160,"detail":1})
.mouseMoves([{"x":316,"y":159,"duration":0},{"x":261,"y":104,"duration":117},{"x":259,"y":94,"duration":166},{"x":273,"y":94,"duration":84}])
.mousedown({"clientX":273,"which":1,"clientY":94,"detail":1})
.mouseup({"clientX":273,"which":1,"clientY":94,"detail":1})
.click({"clientX":273,"which":1,"clientY":94,"detail":1})
.mouseMoves([{"x":277,"y":95,"duration":0},{"x":262,"y":100,"duration":150}]);
agent.element("/HTML/BODY").keydown({"keyIdentifier":"Meta","metaKey":true,"which":91});
agent.wait(632);
agent.element("/HTML/BODY").keydown({"shiftKey":true,"keyIdentifier":"Shift","metaKey":true,"which":16});
agent.element("/HTML/BODY/DIV[13]")
.mouseMoves([{"x":1235,"y":713,"duration":0},{"x":936,"y":477,"duration":84},{"x":749,"y":300,"duration":50},{"x":611,"y":255,"duration":2118},{"x":445,"y":250,"duration":58},{"x":353,"y":265,"duration":9},{"x":263,"y":293,"duration":17},{"x":169,"y":337,"duration":16},{"x":75,"y":400,"duration":17},{"x":14,"y":459,"duration":17},{"x":383,"y":61,"duration":48055}])
.mousedown({"clientX":383,"which":1,"clientY":61,"detail":1})
.mouseup({"clientX":383,"which":1,"clientY":61,"detail":1})
.click({"clientX":383,"which":1,"clientY":61,"detail":1})
.mousedown({"clientX":383,"which":3,"button":2,"clientY":61,"detail":2})
.mousemove({"clientX":383,"clientY":61});
// End of fragment
Test-Result of RUN recorded-script on iframe agent results in the error below:
EXCEPTION Object 181 / 7 No such element! Query was: "/HTML/BODY/DIV[13]" (Error code: 7)
HTML Encode strings with special characters
Replace binary encoding in node.js Buffers
A Buffer with binary encoding is being used here and quoting the node.js docs:
'binary' - A way of encoding raw binary data into strings by using only the first 8 bits of each character. This encoding method is deprecated and should be avoided in favor of Buffer objects where possible. This encoding will be removed in future versions of Node.
I didn't want to spend too much time finding a good replacement for this because we have other bugs. And this still works with node 0.7
Screening doen't work with select elements
IDART bug 3633
Environment set up.
Nodejs : Mac-OS-X,
Agent-Type: iFrame
Agent-platform: Mac-OS-X
Agent-Browser: Chrome 15.0.874.106
Screening v0.1.5
Steps to reproduce
- Create a new agent.
- On recording the gotoUrl is "/webapps/js-authoringtool/MainApp/index.html".
- Select Shape tool from the tool bar and any Fill Materials from the option bar.
- Draw Rectangle Shape on the stage.
- Stop recording and playback the script.
Actual Result
Playback is drawing Rectangle without applying any material on it.
Expected Result
Playback should draw Rectangle with material on it.
Please move Preferences and All Results button to the left side panel
IDART bug # 3611
Preferences and All Results buttons should be placed on the left side panel next to the "New" and "Download All" buttons as they are not specific to an individual test script.
Remove webapps hosting from the debug server
Remove webapps hosting from the debug server
Results color
Background and text color are the same which makes it hard to read.
Recording buttons stopped toggling
Pause Recording and Record buttons should toggle values to Resume Recording and Stop Recording respectively. They do not do it any more
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.