CN105468779A - Browser compatibility detection oriented client Web application capture and playback system and method - Google Patents

Browser compatibility detection oriented client Web application capture and playback system and method Download PDF

Info

Publication number
CN105468779A
CN105468779A CN201510944681.1A CN201510944681A CN105468779A CN 105468779 A CN105468779 A CN 105468779A CN 201510944681 A CN201510944681 A CN 201510944681A CN 105468779 A CN105468779 A CN 105468779A
Authority
CN
China
Prior art keywords
event
browser
module
playback
replay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510944681.1A
Other languages
Chinese (zh)
Other versions
CN105468779B (en
Inventor
吴国全
魏峻
钟华
黄涛
何妹妹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201510944681.1A priority Critical patent/CN105468779B/en
Publication of CN105468779A publication Critical patent/CN105468779A/en
Application granted granted Critical
Publication of CN105468779B publication Critical patent/CN105468779B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Abstract

The invention discloses a browser compatibility detection oriented client Web application capture and playback system and method. The method comprises: during an event capture stage, recording various uncertain events generated when a Web application runs in a reference browser platform, and storing causal relationships between external events and internal events, wherein the uncertain events include external user interaction events and browser internal events (such as a timer event, an Ajax message and uncertain function calling); during a playback stage, performing cross-browser remote playback in a test browser platform and collecting page message in the playback process; and performing comparison through information collected from different browsers to detect various compatibility problems. According to the application capture and playback system and method, the accuracy of a detection result can be effectively improved.

Description

A kind of client Web application detected towards browser compatibility is caught and playback system and method
Technical field
The present invention relates to a kind of client Web application detected towards browser compatibility to catch and playback system and method, belong to internet and Web technical field.
Background technology
Along with the fast development of internet and Web technology, Web application is becoming important acquisition of information and intercommunion platform.It is consistent that application developer wishes that application can show in the browser platform of various main flow, but due to the difference of browser actualizing technology and the difference to standard degree of support, cause Web to be applied in may occurring when different browser platform is run the inconsistent of behavior and webpage representation aspect, be called the incompatibility problem (XBIs) of browser-cross.Usual browser-cross incompatibility problem (XBI) is divided three classes: behavior is inconsistent, layout is inconsistent and content is inconsistent.Behavior is inconsistent: this kind of inconsistent disabler being often referred to element in the page, and as the clickthrough page cannot redirect, the button click page does not react; Layout is inconsistent: refer to the mistake of element in layout in the page.Such as: two buttons horizontally-arranged and consistency from top to bottom in Chrome browser, but in IE browser, be then shown as vertical setting of types; Content is inconsistent: be further divided into content of text inconsistent inconsistent with content viewable.Text is inconsistent, and to refer to the text of element inside different, and content viewable is inconsistent refers to that element is in visual, as the difference of the aspects such as image content, element pattern.
For automatically detecting browser-cross incompatibility problem, current industry member and academia have proposed a lot of Method and kit fors.Existing method (see: S.R.Choudhary, M.R.Prasad, andA.Orso.Crosscheck:Combiningcrawlinganddifferencingtob etterdetectcross-browserincompatibilitiesinwebapplicatio ns, ICST ' 2012), (see: S.R.Choudhary, H.Versee, andA.Orso.Webdiff:Automatedidentificationofcross-browser issuesinwebapplications.InICSM ' 2010), (see: A.MesbahandM.R.Prasad.Automatedcross-browsercompatibilit ytesting.InProceedingsofthe33rdInternationalConferenceon SoftwareEngineering, pages561 – 570.ACM, 2011), (see: S.RoyChoudhary, M.R.Prasad, andA.Orso.X-pert:Accurateidentificationofcross-browseris suesinwebapplications.InProceedingsofthe2013Internationa lConferenceonSoftwareEngineering, pages702 – 711.IEEEPress, 2013) two stages can be usually divided into: the page captures and compares with the page.In page stage of gripping, different browsers detects automatically to Web application, and extracts page related data, comprise dom tree information, layout information and page screenshot information; In page comparison phase, by comparing the page data collected, to find the inconsistence problems of various browser-cross.Browserbite (see http://app.browserbite.com/), MogoTest (see http://mogotest.com/) and Browsera (see http://www.browsera.com/) provide Web application browser-cross compatibility and detect service.But deficiency is only to consider user interactions event, and have ignored browser internal event, as random number, date, timer and XHR etc., cannot ensure to have identical execution on different browsers, cause testing result produce a large amount of wrong reports or fail to report.
Also have at present and catch/reset research (see S.AndricaandG.Candea.Warr:Atoolforhigh-fidelitywebapplic ationrecordandreplay.InDSN ' 2011 much about client Web application, pages403 – 410.), (see B.Burg, R.Bailey, A.J.Ko, andM.D.Ernst.Interactiverecord/replayforwebapplicationde bugging.InProceedingsofthe26thAnnualACMSymposiumonUserIn terfaceSoftwareandTechnology, UIST ' 13, pages473 – 484), (see J.Mickens, J.Elson, andJ.Howell.Mugshot:Deterministiccaptureandreplayforjava scriptapplications.NSDI ' 10, pages11 – 11), (see: K.Sen, S.Kalasapur, T.Brutch, andS.Gibbs.Jalangi:Aselectiverecord-replayanddynamicanal ysisframeworkforjavascript.InProceedingsofthe20139thJoin tMeetingonFoundationsofSoftwareEngineering, ESEC/FSE2013, pages488 – 498).But its main target is the error analysis and location of supporting apply Web.Difference according to realization mechanism is divided into two classes substantially: what browser platform had nothing to do catch/reproducing process and particular browser catch/reproducing process.What browser platform was irrelevant catch/and reproducing process catches/resets various non-deterministic event owing to adopting JavaScript language, be applicable to cross-platform browser and catch and reset.But what existing browser platform had nothing to do catch/and the deficiency of reproducing process is: for reappearing a JavaScript mistake, the sequence of events of catching is reset usually in identical browser platform, and do not consider when browser-cross platform, the sequence of events that a browser is caught carries out playback time on browsers different in addition, may cause resetting due to incompatible JavaScript interface interchange mistake unsuccessfully even wrong playback, finally causes testing result occur wrong report and fail to report.Such as consider the JavaScript code shown in Fig. 1, when running in Chrome, the sequence of events that may catch as shown in Figure 2.When sequence of events playback time in IE6, owing to not supporting firstElementChild interface, when the event handling function that execution Article 1 event is corresponding, el will be null.As call statement el.innerHTML, browser throw exception, causes timer not register fn0.When playback second event, fn1 is registered.When the 3rd event is by playback time, because fn0 does not register, fn1 by the scheduling of mistake, and mistake have read the random number that should be read by fn0.When the 4th event is scheduled, owing to can not find the call back function of registration, causes resetting unsuccessfully, and affect the correct playback of successor.
Summary of the invention
For solving the problem, the present invention proposes a kind of client Web application detected towards browser compatibility to catch and playback system and method, for supporting catching and resetting of browser-cross, at sequence of events collection phase, except catch Web be applied in browser platform is run time various customer incident and browser internal event, go back the cause-effect relationship between recording events; In playback phase, browser platform to be measured carries out event replay, and before replay event, detects consistent whether with the event capturing stage of event handling function, and collect page info simultaneously, detect based on the page info collected in playback phase, improve the accuracy of testing result.
The technology of the present invention solution: a kind of client Web application detected towards browser compatibility is caught and playback system, comprise: web proxy module, event capturing module, service for playback device, replay agent module, event replay module, page data collection module and compatible detection module; Wherein:
Web proxy module, is responsible for coordinating the mutual of client and Web application service end, operationally tackles request and the response message of client and server, and to ask and response contents checks.In the event capturing stage, when with reference to the browse request page, in the page returned, insert event capturing module by web proxy module; In the event replay stage, when replay agent module starts with reference to browser and browser to be measured, in the message returned, insert event replay module by web proxy module;
Event capturing module, be responsible for catching and record client and Web applies the various non-deterministic event of generation when carrying out mutual and forms sequence of events, be saved to service for playback device, described non-deterministic event comprises DOM (DOM Document Object Model) event, browser internal event and non-deterministic function call; DOM event comprises various customer incident (as: click event, keypad input event); Browser internal event comprises timer event, Ajax message; Non-determined function call comprises generating random number and date function call;
Service for playback device, according to the sequence of events collected, is responsible for initiating playback request to Terminal Server Client; First service for playback device receives the registration request of Terminal Server Client, and the reference browser platform information of specifying according to user and browser platform information to be measured, mate with chartered remote client's client information, after the match is successful, playback instructions is sent to the Terminal Server Client of specifying, the content of instruction comprises: the URL of Web application to be measured, needs the ID of the sequence of events reset; After the replay agent module of Terminal Server Client receives reproduction command, start to reset by starting the browser (comprising with reference to browser and browser to be measured) needing to detect;
Replay agent module, be responsible for sending registration request to service for playback device, registration content comprises the browser platform information that place Terminal Server Client is installed, and receives the playback request from service for playback device, before the sequence of events that playback is specified; First configure browser specifies the URL address of web proxy module, then open any browser accesses the Web application of specifying, and inserts event replay module by web proxy module in back page;
Event replay module, be responsible for event capturing module to capture various non-deterministic event resetting with reference in browser and browser to be measured respectively; Event replay module receives the sequence of events ID that replay agent module forwards is come, and resets to service for playback device request sequence of events to be reset according to this ID; Often reset an event, this module invoking page data collection module carries out page data collection;
Page data collection module, receives the notice from event replay module, is responsible for the collection carrying out page data in playback procedure, and the page data of collection is delivered to compatible detection module; The page data collected comprises: the shot image information of each attribute information of DOM node, the layout information of node and full page;
Compatible detection module, according to the page data that page collection module is collected, carries out that behavior is inconsistent, layout is inconsistent and the inconsistent detection of content respectively, and provides examining report.
Described web proxy module realizes as follows:
(1) in the event capturing stage, receive and forward the request of self-reference browser to Web application service end, if the type of the response message in request is " html ", then first cache request and response contents, then in the response message returned, locate the position of <head>, and event capturing module is inserted after <head> label, finally response message after plug-in mounting is returned to reference to browser;
(2) in the event replay stage, the request of Web application service end is sent to detect to browser (with reference to browser and browser to be measured), if ask identical with cache contents, then directly take out corresponding response message, and insert event replay module at the head of response message, return to client; Other be there is no to the request of buffer memory, be then transmitted to Web application service end, after receiving response, directly return to client.
Described event capturing module realizes as follows:
(1) for DOM event, catch function in Window object registration DOM event, when DOM event is triggered, catch the XPath information that function is called to preserve event type, object element; For the cause-effect relationship between acquisition event, preserve register in DOM event implementation timer event, Ajax request and non-determined function call rreturn value;
(2) for timer event, the setTimeout/setInterval function be rewritten and the timer call back function of rewriting are caught, and timer call back function is registered by setTimeout/setInterval function; When the timer call back function that this event is corresponding performs, the timer call back function of rewriting will preserve event type, corresponding source event Id and localID; For the cause-effect relationship between acquisition event, preserve simultaneously may register in timer event implementation timer event, Ajax request and non-determined function call rreturn value;
(3) for Ajax event, caught by the event capturing function specially by onreadystatechange event registration, when the response message that this event is corresponding returns, preserve event type, corresponding source event id, localID and response message content; For the cause-effect relationship between acquisition event, preserve simultaneously may register in Ajax event implementation timer event, Ajax request and non-determined function call rreturn value;
(4) for uncertainty function, comprise date and generating random number, obtaining current time by calling newDate (), calling Math.random () and generating random number; In order to catch calling of these two uncertainty functions, the event capturing module package constructed fuction of Date and Random, recording the rreturn value of prototectonics function;
(5) in addition, in order to distinguish the event of the different page, event capturing module is also for the page of current accessed generates a sequenceid (being initialized as 0), when page jump, trigger beforeunload event, first upload the non-deterministic event that current page is caught, then the sequence value of preserving in session is added 1, to start to be kept at the non-deterministic event of catching in the new page.
Being implemented as follows of described service for playback device:
(1) registration request from Terminal Server Client is received;
(2) registration request is resolved, extract the information <IP of Terminal Server Client, BR, OS>, wherein: IP is the ip address of Terminal Server Client, BR represents browser type and version information that Terminal Server Client is installed, and OS represents OS Type and version information that Terminal Server Client is installed;
(3) according to the information of the Terminal Server Client of registration, the reference browser platform <BR that match user is specified, OS> and browser platform <BR, OS> to be measured;
(4) if the match is successful, send reproduction command replay (logID) to Terminal Server Client, reset in the Terminal Server Client of specifying by the various non-deterministic event collected, wherein logID represents the sequence of events of specifying;
(5) if mate unsuccessful, then report does not have the browser platform to be measured of coupling.
Being implemented as follows of described replay agent module: installed replay agent in each Terminal Server Client, replay agent is embodied as a finger daemon, after it starts:
(1) first carry out to service for playback device the configuration information <IP registering Terminal Server Client, BR, OS>, wherein, IP represents the ip address of the machine, and BR represents browser type and the version of installation, and OS represents OS Type and the version of installation;
(2) reproduction command from service for playback device is received;
(3) resolve reproduction command, extract sequence of events ID to be reset, the type of browser and version, the URL address of Web application to be measured;
(4) configure web proxy address, open the browser of specified type and version, and by web proxy module accesses Web application service end.
The realization of described event replay module is as follows:
Event capturing is carried out for being supported in various different browser, the JavaScript of use standard realizes, and rewritten timer registration function setTimeout/setInterval, Ajax request object XHR, and random function calls Random () and date function Date (), concrete playback flow process is as follows:
(1) according to sequence of events ID to service for playback device request sequence of events to be reset, and be saved in queue Q;
(2) when queue is not empty, event is taken out from queue head;
(3) dissimilar according to event, resets respectively;
(4) if event type is timer event, the event handling function H of event capturing module preservation is then first obtained according to event id and localID, the event handling function H ' of event replay module buffer memory is obtained again according to event id and localID, check that whether H with H ' be identical, if the same directly call event handling function H ' and reset; If do not found, mark this event execute exception;
(5) if event type is Ajax event, then first obtain according to event id and localID the request message M that event capturing module obtains preservation, the request message M ' of event replay module buffer memory is obtained again according to event id and localID, relatively whether M with M ' be identical, if the same the response message that event capturing module is preserved is returned, and this event of resetting; If do not found, mark this event execute exception;
(6) if event type is DOM event, then first according to the XPath Information locating object element that event replay module is preserved, if object element exists, then this event of resetting, otherwise mark this event and there is execute exception;
(7) in event replay process, if run into non-determined function call, then according to the ID directly rreturn value from Random and the Date list of preserving of current playback event, delete this value in lists simultaneously.If list is empty, then calls primary Random and Date function and return, there is behavior with this event of tense marker inconsistent.
(8) after event replay terminates, Notifications page information acquisition module extracts page info;
(9) for supporting the playback of multi-page Web application, playback module is to beforeunload event registration call back function, to increase sequenceid when page jump, often arrive a new page, the playback module of injection can to the recording daily record of server request new page.
Being implemented as follows of described page data collection module:
(1) receive the notice from event replay module, carry out the collection of page data;
(2) dom tree is traveled through, preserves the attribute information of each DOM node, be designated as <Dr1 ... Drn>;
(3) calculate the coordinate information of each DOM node, be designated as <Cr1 ..., Crn>;
(4) screenshotss Pr is carried out to the page;
(5) Id of current playback event is obtained from playback module;
(6) preserve Id, <Dr1 ..., Drn>, <Cr1 ..., Crn>, Pr} are to database.
Being implemented as follows of described compatible detection module:
(1) for the page data collected from difference browser to be measured, access the non-deterministic event of each playback successively, if event is identified there is execute exception, then this event is joined in behavior disagreement set; If event does not have execute exception, then mate the dom tree that event produces further, if there is unmatched node, then same that event is classified as behavior is inconsistent, and joins in behavior disagreement set by unmatched node simultaneously;
(2) for the node in the dom tree of coupling, layout is detected further inconsistent.Inconsistent for detecting layout, first the dom tree extracted is mated, again according to the node coordinate structure arrangement figure (AlignmentGraph) in dom tree, for to be detected two nodes, first judge whether two nodes to be detected have identical father node, secondly judge whether two nodes have identical alignment relation with the brotgher of node; If it is inconsistent, not to be designated detection layout;
(3) for the matched node not having location problem, further Detection of content is inconsistent; For the inconsistent comparison of content of text based on character string comparison of equalization, for visual content inconsistent whether more then compare to detect two pictures by picture identical.
The client Web application detected towards browser compatibility is caught and a playback method, and performing step is as follows:
(1) sequence of events is collected: first configuration is applied by web proxy access Web with reference to browser.The request of web proxy block intercepts browser and service end and response message, for the response message of html type, first the request that buffer memory is corresponding and message content, then insert event capturing module (record.js) and return to browser after the <head> label of the html page; When Web is applied in reference to when browser platform is run, the various non-deterministic event that event capturing module record produces, comprise DOM event (as: click event, key-press event), timer event, Ajax event and non-deterministic function call (as: random number is called, date function call), and the cause-effect relationship simultaneously between recording events.The non-deterministic event of catching forms sequence of events and is uploaded to service for playback device;
(2) sequence of events is reset: first service for playback device checks reference the browser whether Terminal Server Client of current registration is selected with user and test browser platform and match; For the Terminal Server Client of coupling, the service for playback device replay agent module of installing on Terminal Server Client sends playback instructions, and command content comprises sequence of events ID to be reset, the type of browser and version information; After replay agent receives instruction, first the browser of specifying is configured to the URL address of setting web proxy, then open any browser is applied by web proxy module accesses Web, in this stage, browser is asked the html of service end, web proxy directly returns corresponding response message from buffer memory, and after the <head> label of response message, inserts event replay module return; The sequence of events ID that event replay module forwards according to replay agent is to concrete the treating replay event sequence and reset of service for playback device request, before playback timer event and Ajax event, it is identical that first this module checks that whether the call back function of this event registration records with the event capturing stage; Meanwhile, in replay event process, collect the data of current page, comprise DOM nodal information, node layout's information and page screenshot information;
(3) compatiblely to detect: based on the page info collected, compatible detection module carries out that behavior is inconsistent, layout is inconsistent and the inconsistent detection of content respectively, and generates compatibility issue report.
Good effect of the present invention is adopt the present invention can carry out automatic browser-cross compatibility to the Web application after deployment to detect, various non-deterministic event when carrying out mutual are applied by collection user and Web, and remote playback is carried out in different browser platform, by collecting various page data in playback procedure, improve the accuracy of testing result.Because the present invention can ensure there is identical execution in different browser platform, and in playback procedure the inconsistent mistake of Timeliness coverage behavior avoid the correct playback of erroneous effects successor, therefore can improve the accuracy of testing result, and reduce failing to report of compatibility error.
Accompanying drawing explanation
Fig. 1 is JavaScript code fragment;
The sequence of events that Fig. 2 produces when being the code snippet execution of corresponding diagram 1;
Fig. 3 is the composition frame chart of present system;
Fig. 4 is the realization flow figure of WebProxy module in the event capturing stage;
Fig. 5 is the realization flow figure of WebProxy module in the event replay stage;
Fig. 6 is the realization flow figure that sequence of events is collected;
Fig. 7 is the cause-effect relationship example between the event of preservation;
Fig. 8 is the realization flow figure of playback server module;
Fig. 9 is the realization flow figure of playback proxy module;
Figure 10 is the realization flow figure that sequence of events is reset;
Figure 11 is the realization flow figure of page data collection module;
Figure 12 is the realization flow figure of compatible detection module.
Embodiment
In order to understanding the present invention, before describing the present invention, relevant term etc. is once illustrated.
SetTimeout: this function is predefined function in Javascript language, by the registrable overtime timer of setTimeout function;
SetInterval: this function is predefined function in Javascript language, by the timer of the registrable periodic triggers of setInterval function;
Ajax (AsynchronousJavaScriptandXML): a kind of technology being a kind of Web applications client and service end asynchronous exchange data, when not reloading full page, can upgrade certain part of the page;
XHR (XMLHttpRequest): the request object in Ajax;
Onreadystatechange:XHR object provides onreadystatechange event, can be this event registration event handling function with processing response message;
Beforeunload: this event is predefined event in browser, this event is triggered by browser before current page unloading.
Below in conjunction with accompanying drawing, the present invention is described in detail.
As shown in Figure 3, a kind of client Web application detected towards browser compatibility of the present invention is caught and is comprised with playback system: web proxy module, event capturing module (record.js), service for playback device, replay agent module, event replay module (replay.js), page data collection module and compatible detection module.
Introduce the major function of each module below in detail:
As shown in Figure 4, Figure 5, web proxy module of the present invention is implemented as follows:
Web proxy primary responsibility coordinates the browser access of apply Web, operationally the request of this block intercepts client and server and response message, and to ask and response contents checks:
1) as shown in Figure 4, in the event capturing stage, web proxy receives and forwards the request from browser to service end, if the type of response message is " html ", then first cache request and response contents, then in the response message returned, locate the position of <head>, and after <head> label, insert event capturing module (record.js), finally response message after plug-in mounting is returned to browser.
2) as shown in Figure 5, in the event replay stage, the request of service end is sent to detect to browser, if ask identical with cache contents, then directly take out corresponding response message, and after the head of response message inserts event replay module (replay.js), return to client.Other are not had to the request of buffer memory, web proxy is then transmitted to service end, after receiving response, directly return to client.
As shown in Figure 6, being implemented as follows of event capturing module:
Carry out event capturing for being supported in various different browser, this module uses the JavaScript of standard to realize.A few class non-deterministic event: DOM (DOM Document Object Model) event, browser internal event and non-deterministic function call below the support of event capturing module.DOM event comprises various customer incident (as: click event, keypad input event); Browser internal event comprises timer event, Ajax message; Non-determined function call comprises generating random number and date function call
In this stage, the present invention also preserves the cause-effect relationship between the non-deterministic event of catching.In addition, consider that the Web application of current main flow is all be made up of multi-page, this module is also supported to associate capturing event from multiple page.
For catching various DOM event, DOMlevel2 (see http://www.w3.org/TR/DOM-Level-2/) model is adopted to catch user interactions event (current most of major browsers all supports this model).This model defines a triphasic event handling model: catch-target-bubbling.At acquisition phase, after event is transferred to window object and document object handles by browser, along dom tree root node always to child node transmission, until destination node.After destination node processes event, enter bubbling phase, the more reverse ancestor node by destination node processes successively.Event capturing module, by registering an event capturing handling procedure on window object, ensures the correlation attribute information recording this event before this event is by other node processing, as: the routing information, key information etc. of event type, destination node.
Timer event uses setTimeout/setInterval function to register, and this event is triggered once in setTimeout, is triggered at set intervals in setInterval, until this timer is cancelled.Event capturing module catches timer event by encapsulation setTimeout and setInterval function.Function after encapsulation first can preserve the relevant information of this event, then calls this event of primary function registration.
Ajax technology when not submitting full page to server, can realize the local updating of the page.Method and the timer event of catching Ajax event are similar, the event capturing module package constructed fuction of XMLHttpRequest (XHR) object, by being onreadystatechange event registration event capturing function, to record the status information of each XHR event.Encapsulate the send/open method of XHR, with the rreturn value of record request content and send/open function simultaneously.For cache responses message, rewrite setter and the getter method of attribute responseXML/responseText with the content of the message that meets with a response.
Uncertainty function comprises date and generating random number, obtaining current time, calling Math.random () and generating random number by calling Date ().In order to catch calling of these two uncertainty functions, the event capturing module package constructed fuction of Date and Random, recording the rreturn value of prototectonics function.
Cause-effect relationship between event is defined as by the present invention: in the process that the event handling function that event E is corresponding performs, have registered event E ', then claim E to be source event, E ' is target event.For the cause-effect relationship between recording events, event capturing module is that each event of catching is provided with a unique ID, after event is captured, except preserving the relevant information of event, browser internal event also for registering in this event handling function implementation, as timer event, Ajax asks, non-determined function safeguards the list of a local, the content of preserving in list is as follows: for timer event to be registered, first for it distributes a localID (from 0), and eventid and localid of source event is imported into the callback function of timer as parameter, for Ajax request, similar timer event, is similarly it and distributes a localID (from 0 s), and to be come in and gone out callback as parameter by EventId and the localID of source event, and the content that preservation is asked, random number is called and date function, then directly preserves the result that local functions calls.Fig. 7 gives the event cause-effect relationship example into event id0, id1 preserve.
The present invention also supports to carry out event capturing/playback to multi-page Web application, for supporting catching and resetting of multi-page Web application, when user accesses Web application homepage, event capturing module can generate a unique session id automatically, in the page subsequently, all will use same session id.In addition, in order to distinguish the event of the different page, this module is also for the page of current accessed generates a sequenceid (being initialized as 0), when page jump, utilize beforeunload event, preserve the sequence of events that current page is caught, and increase the value of sequenceid, to preserve the non-deterministic event that the next page occurs.
Concrete event capturing flow process is as follows:
1) for DOM event, caught by Window object registration DOM event capturing function, and preserve the information such as XPath of event type, object element.For the cause-effect relationship between acquisition event, preserve register in DOM event implementation timer event, Ajax request and non-determined function call rreturn value;
2) for timer event, the timer call back function that setTimeout/setInterval (by setTimeout function registration overtime timer in Javascript language, the timer by the setInterval function registration periodic triggers) function be rewritten is caught and rewritten is caught.When the call back function that this event is corresponding performs, preserve event type, corresponding source event Id and localID.For the cause-effect relationship between acquisition event, preserve register in call back function implementation timer event, Ajax request and non-determined function call rreturn value;
3) for Ajax event, caught by the event capturing function specially for onreadystatechange event registration.When the response message that this event is corresponding returns, preserve event type, corresponding source event id, localID and response message content.For the cause-effect relationship between acquisition event, preserve may register in call back function implementation timer event, Ajax request and non-determined function call rreturn value;
4) when page jump, trigger beforeunload event (this event is triggered by browser before current page unloading), the sequence of events that first this module will be uploaded current page and catch, again the sequence value of preserving in session is added 1, to start to be kept at the non-deterministic event of catching in the new page.
As shown in Figure 8, being implemented as follows of service for playback device:
1) registration request from Terminal Server Client is received;
2) registration request is resolved, extract the information <IP of Terminal Server Client, BR, OS>, wherein: IP is the ip address of Terminal Server Client, BR represents browser type (as: IE/Chrome/Firefox etc.) and version information that Terminal Server Client is installed, and OS represents OS Type (as: Windows/Ubuntu/Mac etc.) and version information that Terminal Server Client is installed;
3) according to the information of the Terminal Server Client of registration, the reference browser platform <BR that match user is specified, OS> and browser platform <BR, OS> to be measured.
4) if the match is successful, send reproduction command replay (logID) to Terminal Server Client, reset in the Terminal Server Client of specifying by the sequence of events collected, wherein logID represents the sequence of events of specifying;
5) if mate unsuccessful, then report does not have the browser platform to be measured of coupling;
As shown in Figure 9, being implemented as follows of replay agent:
Installed replay agent in each Terminal Server Client, replay agent is embodied as a finger daemon, after it starts:
1) first carry out to service for playback device the configuration information <IP registering Terminal Server Client, BR, OS>, wherein, IP represents the ip address of the machine, and BR represents browser type and the version of installation, and OS represents OS Type and the version of installation;
2) reproduction command from service for playback device is received;
3) resolve reproduction command, extract sequence of events ID to be reset, the type of browser and version, the URL address of Web application to be measured;
4) configure web proxy address, the browser access Web opening specified type and version applies, and web proxy module before the page returns browser resolves, can insert event replay module;
As shown in Figure 10, the realization of event replay module is as follows:
Event capturing is carried out for being supported in various different browser, this module uses the JavaScript of standard to realize, and rewritten timer registration function setTimeout/setInterval, Ajax request object XHR, and random function calls Random () and date function Date (), concrete playback flow process is as follows:
1) according to sequence of events ID to service for playback device request sequence of events to be reset, and be saved in queue Q;
2) when queue is not empty, event is taken out from queue head;
3) dissimilar according to event, resets respectively;
4) if event type is timer event, the event handling function H of event capturing module preservation is then first obtained according to event id and localID, the event handling function H ' of event replay module buffer memory is obtained again according to event id and localID, check that whether H with H ' be identical, if the same directly call event handling function H ' and reset; If do not found, mark this event execute exception;
5) if event type is Ajax event, then first obtain according to event id and localID the request message M that event capturing module obtains preservation, the request message M ' of event replay module buffer memory is obtained again according to event id and localID, relatively whether M with M ' be identical, if the same the response message that event capturing module is preserved is returned, and this event of resetting; If do not found, mark this event execute exception;
6) if event type is DOM event, then first according to the XPath Information locating object element that event replay module is preserved, if object element exists, then this event of resetting, otherwise mark this event and there is execute exception;
7) in event replay process, if run into non-determined function call, then according to the ID directly rreturn value from Random and the Date list of preserving of current playback event, delete this value in lists simultaneously.If list is empty, then calls primary Random and Date function and return, there is behavior with this event of tense marker inconsistent.
8) after event replay terminates, Notifications page information acquisition module extracts page info;
9) for supporting the playback of multi-page Web application, playback module to beforeunload event registration call back function, to increase sequenceid when page jump.Often arrive a new page, the playback module of injection can to the recording daily record of server request new page.
As shown in figure 11, what page data was collected is implemented as follows:
1) receive the notice from event replay module, carry out the collection of page info;
2) dom tree is traveled through, preserves the attribute information of each DOM node, be designated as <Dr1 ... Drn>;
3) calculate the coordinate information of each DOM node, be designated as <Cr1 ..., Crn>;
4) screenshotss Pr is carried out to the page;
5) Id of current playback event is obtained from playback module;
6) preserve Id, <Dr1 ..., Drn>, <Cr1 ..., Crn>, Pr} are to database;
As shown in figure 12, being implemented as follows of compatible detection module:
Be based upon the page info that each replay event is collected, devise corresponding compatible detection method.
1) for the page data collected from different browsers, each replay event accessed successively by compatible detecting device, if event is identified there is execute exception, then joins in behavior disagreement set by this event; If event does not have execute exception, then mate the dom tree that event produces further, if there is unmatched node, then same that event is classified as behavior is inconsistent, and joins in behavior disagreement set by unmatched node simultaneously;
2) for the DOM node of coupling, layout is detected further inconsistent.Inconsistent for detecting layout, first the dom tree extracted is mated, then according to the coordinate structure arrangement figure of DOM node, by checking whether matched node exists identical set membership and brotherhood is inconsistent to find layout.
3) for the matched node not having location problem, further Detection of content is inconsistent.For the inconsistent comparison of content of text based on character string comparison of equalization, for visual content inconsistent whether more then compare to detect two pictures by picture identical.
Present invention achieves the compatible testing tool-X-Check of Web application browser-cross.
For detecting the compatibility issue of Web application, first the URL address that user submits to Web to be measured to apply is needed, with reference to the type of browser and the OS Type of version and operation and version information, the test type of browser and the OS Type of version and operation and version information.
After receiving above-mentioned request, invent collected by sequence of events, sequence of events resets and to collect with page data, and compatibility detect three steps after report the various inconsistence problems detected.Implementation method concrete steps are as follows:
1. sequence of events is collected
For supporting that automatic sequence of events is collected, invention uses Web application state space exploration instrument Crawljax (http://crawljax.com/) to start with reference to browser, the page of Web application is detected, and in detection process, catches various non-deterministic event.Detailed process is as follows:
1) before startup browser, first Crawljax configures the URL address inserting web proxy with reference to browser, is applied by proxy access Web to make browser.
2) agency is responsible for request and the response message of all browsers of interception and service end.If the type of message returned is html, web proxy is cache request and response message also, ensures to access identical content at playback time.
3) for html response message, web proxy is before returning to browser, first locate the position of <head> label, and after <head> label, insert event capturing module (record.js).
4) page is after browser has loaded, Crawljax detects Web application, in detection process, event capturing module record Web applies the various non-deterministic event operationally produced, comprise DOM event (as: click event, keypad input event), timer event, Ajax event and non-deterministic function call (as: random number is called, date function call), and the cause-effect relationship simultaneously between recording events.
2. sequence of events playback is collected with page data
1) for supporting remote playback, first need, in Terminal Server Client, replay agent is installed.Replay agent is embodied as a finger daemon of client.After replay agent is run, first register at service for playback device end, the operating system and browser information of installing in Terminal Server Client are provided, and the instruction of wait-receiving mode service for playback device;
2) the reference browser platform information that provides according to user of service for playback device and browser platform information to be measured, mate with chartered remote client's client information.After the match is successful, service for playback device sends playback instructions to the Terminal Server Client of specifying, and the content of instruction comprises: the URL of Web application to be measured, needs the sequence of events ID reset;
3) after the replay agent of Terminal Server Client receives reproduction command, start the browser needing to detect, and configure browser is by web proxy access application, and in the html message returned, inserts event replay module by web proxy and to reset the sequence of events of specifying;
4) in playback procedure, not only to collect the node data of change, comprise the node of changes in coordinates, also will carry out sectional drawing when each page change to the page.For carrying out page screenshot in the process of resetting, choice for use Selenium (www.seleniumhq.org) realizes sectional drawing function.Selenium supports the browser of nearly all main flow, as IE, Firefox, Chrome and Safari.X-Check achieves playback client based on selenium, the method called in playback storehouse by playback client carries out event replay, and the change of the page whether is caused according to the page data determination replay event of collecting, if the page changes, call getScreenshotAs () and obtain page screenshot.
Because page info collection can reduce playback speed frequently, take following measure to be optimized: for continuous print user incoming event, replay component does not carry out page info collection after an event of having reset, and continues next user's incoming event of resetting.When the event of resetting is not user's incoming event, to page info carry out concentrate once gather; For continuous print timer event, replay component adopts fixing interval of events to gather page info, and the interval of events of setting is at present 5.
3. compatible detection
Based on the page info collected, invention is carried out compatibility further and is detected.
1) detecting device travels through the replay event sequence of collecting in test browser successively, inconsistent for behavior, and detecting device checks whether event occurs mistake in playback procedure, and whether the dom tree of correspondence mates;
2) inconsistent for detecting layout, X-Check employs the method that adopts in X-PERT (see S.RoyChoudhary, M.R.Prasad, andA.Orso.X-PERT:Accurateidentificationofcross-browseris suesinwebapplications.InProceedingsofthe2013Internationa lConferenceonSoftwareEngineering, pages702 – 711.IEEEPress, 2013), the layout (AlignmentGraph) of the page is built according to node coordinate, for to be detected two nodes, first judge whether two nodes to be detected have identical father node, secondly judge whether two nodes have identical alignment relation with the brotgher of node,
3) inconsistent for detecting image content, X-Check adopts OpenCV (http://opencv.org/) to compare the similarity of two element pictures, first from page screenshot, local picture is obtained according to element coordinate, then histogram is converted to, finally adopt the picture analogies of Measures compare two elements of related coefficient, and for the inconsistent comparison of content of text based on character string comparison of equalization.After detection, X-Check will return testing result, and identify compatibility issue on page screenshot, with visual displaying testing result.
There is provided above embodiment to be only used to describe object of the present invention, and do not really want to limit the scope of the invention.Scope of the present invention is defined by the following claims.Do not depart from spirit of the present invention and principle and the various equivalent substitutions and modifications made, all should contain within the scope of the present invention.

Claims (10)

1. the client Web application detected towards browser compatibility is caught and playback system, it is characterized in that comprising: web proxy module, event capturing module, service for playback device, replay agent module, event replay module, page data collection module and compatible detection module; Wherein:
Web proxy module, is responsible for coordinating the mutual of client and Web application service end, operationally tackles request and the response message of client and server, and to ask and response contents checks; In the event capturing stage, when with reference to the browse request page, in the page returned, insert event capturing module by web proxy module; In the event replay stage, when replay agent module starts with reference to browser and browser to be measured, in the message returned, insert event replay module by web proxy module;
Event capturing module, be responsible for catching and record client and Web applies the various non-deterministic event of generation when carrying out mutual and forms sequence of events, be saved to service for playback device, described non-deterministic event comprises DOM (DOM Document Object Model) event, browser internal event and non-deterministic function call; DOM event comprises various customer incident; Browser internal event comprises timer event, Ajax message; Non-determined function call comprises generating random number and date function call;
Service for playback device, according to the sequence of events that event capturing module collection arrives, is responsible for initiating playback request to Terminal Server Client; First service for playback device receives the registration request of Terminal Server Client, and the reference browser platform information of specifying according to user and browser platform information to be measured, mate with chartered remote client's client information, after the match is successful, playback instructions is sent to the Terminal Server Client of specifying, the content of instruction comprises: the URL of Web application to be measured, needs the ID of the sequence of events reset; After the replay agent module of Terminal Server Client receives reproduction command, the browser needing to detect will be started, comprise and start to reset with reference to browser and browser to be measured;
Replay agent module, be responsible for sending registration request to service for playback device, registration content comprises the browser platform information that place Terminal Server Client is installed, and receives the playback request from service for playback device.Before the sequence of events that playback is specified, first configure browser specifies the URL address of web proxy module, then open any browser accesses the Web application of specifying, and inserts event replay module by web proxy module in back page;
Event replay module, be responsible for event capturing module to capture various non-deterministic event resetting with reference in browser and browser to be measured respectively; Event replay module receives the sequence of events ID that replay agent module forwards is come, and resets to service for playback device request sequence of events to be reset according to this ID; Often reset an event, this module invoking page data collection module carries out page data collection;
Page data collection module, receives the notice from event replay module, is responsible for the collection carrying out page data in playback procedure, and the page data of collection is delivered to compatible detection module; The page data collected comprises: the shot image information of each attribute information of DOM node, the layout information of node and full page;
Compatible detection module, according to the page data that page collection module is collected, carries out that behavior is inconsistent, layout is inconsistent and the inconsistent detection of content respectively, and provides examining report.
2. the client Web application detected towards browser compatibility according to claim 1 is caught and playback system, it is characterized in that: described web proxy module realizes as follows:
(1) in the event capturing stage, receive and forward the request of self-reference browser to Web application service end, if the type of the response message in request is " html ", then first cache request and response contents, then in the response message returned, locate the position of <head>, and event capturing module is inserted after <head> label, finally response message after plug-in mounting is returned to reference to browser;
(2) in the event replay stage, to browser, comprise and send to the request of Web application service end to detect with reference to browser and browser to be measured, if ask identical with cache contents, then directly take out corresponding response message, and insert event replay module at the head of response message, return to client; Other be there is no to the request of buffer memory, be then transmitted to Web application service end, after receiving response, directly return to client.
3. the client Web application detected towards browser compatibility according to claim 1 is caught and playback system, it is characterized in that: described event capturing module realizes as follows:
(1) for DOM event, catch function in Window object registration DOM event, when DOM event is triggered, catch the XPath information that function is called to preserve event type, object element; For the cause-effect relationship between acquisition event, preserve register in DOM event implementation timer event, Ajax request and non-determined function call rreturn value;
(2) for timer event, the setTimeout/setInterval function be rewritten and the timer call back function of rewriting are caught, and timer call back function is registered by setTimeout/setInterval function; When the timer call back function that this event is corresponding performs, the timer call back function of rewriting will preserve event type, corresponding source event Id and localID; For the cause-effect relationship between acquisition event, preserve simultaneously may register in timer event implementation timer event, Ajax request and non-determined function call rreturn value;
(3) for Ajax event, by specially by onreadystatechange event registration event capturing function caught, when the response message that this event is corresponding returns, preserve event type, corresponding source event id, localID and response message content; For the cause-effect relationship between acquisition event, preserve simultaneously may register in Ajax event implementation timer event, Ajax request and non-determined function call rreturn value;
(4) for uncertainty function, comprise date and generating random number, obtaining current time by calling newDate (), calling Math.random () and generating random number; In order to catch calling of these two uncertainty functions, the event capturing module package constructed fuction of Date and Random, recording the rreturn value of prototectonics function;
(5) in addition, in order to distinguish the event of the different page, event capturing module is also for the page of current accessed generates a sequenceid, when page jump, trigger beforeunload event, first upload the non-deterministic event that current page is caught, then the sequence value of preserving in session is added 1, to start to be kept at the non-deterministic event of catching in the new page.
4. the client Web application detected towards browser compatibility according to claim 1 is caught and playback system, it is characterized in that: being implemented as follows of described service for playback device:
(1) registration request from Terminal Server Client is received;
(2) registration request is resolved, extract the information <IP of Terminal Server Client, BR, OS>, wherein: IP is the ip address of Terminal Server Client, BR represents browser type and version information that Terminal Server Client is installed, and OS represents OS Type and version information that Terminal Server Client is installed;
(3) according to the information of the Terminal Server Client of registration, the reference browser platform <BR that match user is specified, OS> and browser platform <BR, OS> to be measured.
(4) if the match is successful, send reproduction command replay (logID) to Terminal Server Client, reset in the Terminal Server Client of specifying by the various non-deterministic event collected, wherein logID represents the sequence of events of specifying;
(5) if mate unsuccessful, then report does not have the browser platform to be measured of coupling.
5. the client Web application detected towards browser compatibility according to claim 1 is caught and playback system, it is characterized in that: being implemented as follows of described replay agent module: in each Terminal Server Client, replay agent has been installed, replay agent is embodied as a finger daemon, after finger daemon starts:
(1) first carry out to service for playback device the configuration information <IP registering Terminal Server Client, BR, OS>, wherein, IP represents the ip address of the machine, and BR represents browser type and the version of installation, and OS represents OS Type and the version of installation;
(2) reproduction command from service for playback device is received;
(3) resolve reproduction command, extract sequence of events ID to be reset, the type of browser and version, the URL address of Web application to be measured;
(4) configure web proxy address, open the browser of specified type and version, and by web proxy module accesses Web application service end.
6. the client Web application detected towards browser compatibility according to claim 1 is caught and playback system, it is characterized in that: the realization of described event replay module is as follows:
Event capturing is carried out for being supported in various different browser, the JavaScript of use standard realizes, and rewritten timer registration function setTimeout/setInterval, Ajax request object XHR, and random function calls Random () and date function Date (), concrete playback flow process is as follows:
(1) according to sequence of events ID to service for playback device request sequence of events to be reset, and be saved in queue Q;
(2) when queue is not empty, event is taken out from queue head;
(3) dissimilar according to event, resets respectively;
(4) if event type is timer event, the event handling function H of event capturing module preservation is then first obtained according to event id and localID, the event handling function H ' of event replay module buffer memory is obtained again according to event id and localID, check that whether H with H ' be identical, if the same directly call event handling function H ' and reset; If do not found, mark this event execute exception;
(5) if event type is Ajax event, then first obtain according to event id and localID the request message M that event capturing module obtains preservation, the request message M ' of event replay module buffer memory is obtained again according to event id and localID, relatively whether M with M ' be identical, if the same the response message that event capturing module is preserved is returned, and this event of resetting; If do not found, mark this event execute exception;
(6) if event type is DOM event, then first according to the XPath Information locating object element that event replay module is preserved, if object element exists, then this event of resetting, otherwise mark this event and there is execute exception;
(7) in event replay process, if run into non-determined function call, then according to the ID directly rreturn value from Random and the Date list of preserving of current playback event, delete this value in lists simultaneously; If list is empty, then calls primary Random and Date function and return, there is behavior with this event of tense marker inconsistent;
(8) after event replay terminates, Notifications page information acquisition module extracts page info;
(9) for supporting the playback of multi-page Web application, playback module is to beforeunload event registration call back function, to increase sequenceid when page jump, often arrive a new page, the playback module of injection can to the recording daily record of server request new page.
7. the client Web application detected towards browser compatibility according to claim 1 is caught and playback system, it is characterized in that: being implemented as follows of described page data collection module:
(1) receive the notice from event replay module, carry out the collection of page data;
(2) dom tree is traveled through, preserves the attribute information of each DOM node, be designated as <Dr1 ... Drn>;
(3) calculate the coordinate information of each DOM node, be designated as <Cr1 ..., Crn>;
(4) screenshotss Pr is carried out to the page;
(5) Id of current playback event is obtained from playback module;
(6) preserve Id, <Dr1 ..., Drn>, <Cr1 ..., Crn>, Pr} are to database.
8. the client Web application detected towards browser compatibility according to claim 1 is caught and playback system, it is characterized in that: being implemented as follows of described compatible detection module:
(1) for the page data collected from difference browser to be measured, access the non-deterministic event of each playback successively, if event is identified there is execute exception, then this event is joined in behavior disagreement set; If event does not have execute exception, then mate the dom tree that event produces further, if there is unmatched node, then same that event is classified as behavior is inconsistent, and joins in behavior disagreement set by unmatched node simultaneously;
(2) for the node in the dom tree of coupling, layout is detected further inconsistent; Inconsistent for detecting layout, first the dom tree extracted is mated, then according to the coordinate structure arrangement figure of the node in dom tree, by checking whether matched node exists identical set membership and brotherhood is inconsistent to find layout;
(3) for the matched node not having location problem, further Detection of content is inconsistent; For the inconsistent comparison of content of text based on character string comparison of equalization, for visual content inconsistent whether more then compare to detect two pictures by picture identical.
9. the client Web application detected towards browser compatibility according to claim 8 is caught and playback system, it is characterized in that: the described inconsistent process of detection behavior is: the non-deterministic event of accessing each playback successively, if event is identified there is execute exception, then to there is behavior inconsistent for this event, joined in behavior disagreement set; If event does not exist execute exception, then further the dom tree after this event replay is mated, if there is unmatched node, also this event is classified as behavior inconsistent, and unmatched node is joined in behavior disagreement set simultaneously.
10. the client Web application detected towards browser compatibility is caught and a playback method, it is characterized in that performing step is as follows:
(1) sequence of events is collected: first configuration is applied by web proxy access Web with reference to browser, the request of web proxy block intercepts browser and service end and response message, for the response message of html type, first the request that buffer memory is corresponding and message content, then insert event capturing module and return to browser after the <head> label of the html page; When Web is applied in reference to when browser platform is run, the various non-deterministic event that event capturing module record produces, comprise DOM event, timer event, Ajax event and non-deterministic function call, and the cause-effect relationship simultaneously between recording events.The non-deterministic event of catching forms sequence of events and is uploaded to service for playback device;
(2) sequence of events is reset: first service for playback device checks reference the browser whether Terminal Server Client of current registration is selected with user and test browser platform and match; For the Terminal Server Client of coupling, the service for playback device replay agent module of installing on Terminal Server Client sends playback instructions, and command content comprises sequence of events ID to be reset, the type of browser and version information; After replay agent receives instruction, first the browser of specifying is configured to the URL address of setting web proxy, then open any browser is applied by web proxy module accesses Web, in this stage, browser is asked the html of service end, web proxy directly returns corresponding response message from buffer memory, and after the <head> label of response message, inserts event replay module return; The sequence of events ID that event replay module forwards according to replay agent is to concrete the treating replay event sequence and reset of service for playback device request, before playback timer event and Ajax event, it is identical that first this module checks that whether the call back function of this event registration records with the event capturing stage; Meanwhile, in replay event process, collect the data of current page, comprise DOM nodal information, node layout's information and page screenshot information;
(3) compatiblely to detect: based on the page info collected, compatible detection module carries out that behavior is inconsistent, layout is inconsistent and the inconsistent detection of content respectively, and generates compatibility issue report.
CN201510944681.1A 2015-12-16 2015-12-16 A kind of client Web application capture and playback system and method towards browser compatibility detection Active CN105468779B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510944681.1A CN105468779B (en) 2015-12-16 2015-12-16 A kind of client Web application capture and playback system and method towards browser compatibility detection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510944681.1A CN105468779B (en) 2015-12-16 2015-12-16 A kind of client Web application capture and playback system and method towards browser compatibility detection

Publications (2)

Publication Number Publication Date
CN105468779A true CN105468779A (en) 2016-04-06
CN105468779B CN105468779B (en) 2018-12-28

Family

ID=55606479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510944681.1A Active CN105468779B (en) 2015-12-16 2015-12-16 A kind of client Web application capture and playback system and method towards browser compatibility detection

Country Status (1)

Country Link
CN (1) CN105468779B (en)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095886A (en) * 2016-06-03 2016-11-09 腾讯科技(深圳)有限公司 A kind of data processing method and device thereof
CN106603974A (en) * 2016-11-25 2017-04-26 济南中维世纪科技有限公司 Monitoring device user operation data acquisition method
CN106649805A (en) * 2016-12-29 2017-05-10 中国科学院软件研究所 High-efficiency Web application cross-browser layout compatibility detecting system and method
CN106919506A (en) * 2017-02-21 2017-07-04 上海斐讯数据通信技术有限公司 A kind of analysis method and system of compatible defect
CN107315682A (en) * 2017-06-22 2017-11-03 北京凤凰理理它信息技术有限公司 Test browser-safe method, device, storage medium and electronic equipment
CN107741903A (en) * 2017-09-11 2018-02-27 平安科技(深圳)有限公司 Application compatibility method of testing, device, computer equipment and storage medium
CN108021494A (en) * 2017-12-27 2018-05-11 广州优视网络科技有限公司 A kind of method for recording of application operating, back method and related device
CN108306918A (en) * 2017-01-13 2018-07-20 南京邮电大学盐城大数据研究院有限公司 A kind of website access information automatic obtaining method based on dynamically analyzing of program
CN109145248A (en) * 2017-09-19 2019-01-04 屏幕分享科技有限公司 Method for recording, editing and reproducing computer talk
CN109474665A (en) * 2018-09-30 2019-03-15 咪咕文化科技有限公司 A kind of information processing method, device and computer storage medium
CN109656643A (en) * 2017-10-10 2019-04-19 武汉斗鱼网络科技有限公司 More browser compatibility test methods, storage medium, electronic equipment and system
CN109684220A (en) * 2018-12-26 2019-04-26 苏州博纳讯动软件有限公司 A kind of browser compatibility analysis method based on event replay
CN110245050A (en) * 2019-06-11 2019-09-17 四川长虹电器股份有限公司 A method of it realizing script error monitoring and reports
CN110351259A (en) * 2019-06-28 2019-10-18 深圳数位传媒科技有限公司 A kind of method and device obtaining APP authentication information based on network packet capturing
CN110502437A (en) * 2019-07-31 2019-11-26 惠州市德赛西威汽车电子股份有限公司 A kind of test macro and its method of on-vehicle Bluetooth application program
CN111159607A (en) * 2018-11-07 2020-05-15 中国移动通信集团重庆有限公司 Website compatibility setting method, device, equipment and medium
TWI697772B (en) * 2019-05-08 2020-07-01 立端科技股份有限公司 Automatic test host operating system test method and test system thereof
WO2020199091A1 (en) 2019-04-01 2020-10-08 Citrix Systems, Inc. Web page duplication
CN111857932A (en) * 2020-07-27 2020-10-30 成都安恒信息技术有限公司 Web substitution and filling method for operation and maintenance auditing system based on puppeteer
CN111913869A (en) * 2019-05-08 2020-11-10 立端科技股份有限公司 Test method and test system for automatically testing host operating system
CN113495841A (en) * 2021-06-28 2021-10-12 北京百度网讯科技有限公司 Compatibility detection method, device, equipment, storage medium and program product

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033803A (en) * 2009-09-29 2011-04-27 国际商业机器公司 Method and device for testing web application across browsers
CN102142016A (en) * 2010-01-29 2011-08-03 微软公司 Cross-browser interactivity recording, playback and editing
CN103927253A (en) * 2013-01-11 2014-07-16 阿里巴巴集团控股有限公司 Multiple browser compatibility testing method and system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033803A (en) * 2009-09-29 2011-04-27 国际商业机器公司 Method and device for testing web application across browsers
CN102142016A (en) * 2010-01-29 2011-08-03 微软公司 Cross-browser interactivity recording, playback and editing
CN103927253A (en) * 2013-01-11 2014-07-16 阿里巴巴集团控股有限公司 Multiple browser compatibility testing method and system

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
B.BURG等: "Interactive record/replay for web application debugging", 《ACM》 *
S.ROY CHOUDHARY等: "Accurate identification of cross-browser issues in web applications", 《IEEE》 *
SEN K等: "A selective record-replay and dynamic analysis framework for JavaScript", 《ACM》 *
屈建勤等: "Web应用界面跨浏览器兼容性的自动检测方法", 《计算机系统应用》 *
王欢欢等: "Web应用界面跨浏览器兼容性的自动检测方法", 《计算机科学》 *

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095886A (en) * 2016-06-03 2016-11-09 腾讯科技(深圳)有限公司 A kind of data processing method and device thereof
CN106095886B (en) * 2016-06-03 2020-10-09 腾讯科技(深圳)有限公司 Data processing method and device
CN106603974A (en) * 2016-11-25 2017-04-26 济南中维世纪科技有限公司 Monitoring device user operation data acquisition method
CN106649805A (en) * 2016-12-29 2017-05-10 中国科学院软件研究所 High-efficiency Web application cross-browser layout compatibility detecting system and method
CN106649805B (en) * 2016-12-29 2020-02-11 中国科学院软件研究所 Efficient detection system and method for cross-browser layout compatibility of Web application
CN108306918B (en) * 2017-01-13 2021-08-31 南京邮电大学盐城大数据研究院有限公司 Automatic website access information acquisition method based on program dynamic analysis
CN108306918A (en) * 2017-01-13 2018-07-20 南京邮电大学盐城大数据研究院有限公司 A kind of website access information automatic obtaining method based on dynamically analyzing of program
CN106919506B (en) * 2017-02-21 2020-01-07 上海斐讯数据通信技术有限公司 Method and system for analyzing compatibility defects
CN106919506A (en) * 2017-02-21 2017-07-04 上海斐讯数据通信技术有限公司 A kind of analysis method and system of compatible defect
CN107315682A (en) * 2017-06-22 2017-11-03 北京凤凰理理它信息技术有限公司 Test browser-safe method, device, storage medium and electronic equipment
CN107741903A (en) * 2017-09-11 2018-02-27 平安科技(深圳)有限公司 Application compatibility method of testing, device, computer equipment and storage medium
WO2019047482A1 (en) * 2017-09-11 2019-03-14 平安科技(深圳)有限公司 Application program compatibility testing method, apparatus, computer device and storage medium
CN109145248A (en) * 2017-09-19 2019-01-04 屏幕分享科技有限公司 Method for recording, editing and reproducing computer talk
CN109656643A (en) * 2017-10-10 2019-04-19 武汉斗鱼网络科技有限公司 More browser compatibility test methods, storage medium, electronic equipment and system
CN108021494A (en) * 2017-12-27 2018-05-11 广州优视网络科技有限公司 A kind of method for recording of application operating, back method and related device
CN109474665A (en) * 2018-09-30 2019-03-15 咪咕文化科技有限公司 A kind of information processing method, device and computer storage medium
CN109474665B (en) * 2018-09-30 2021-08-06 咪咕文化科技有限公司 Information processing method and device and computer storage medium
CN111159607B (en) * 2018-11-07 2023-09-19 中国移动通信集团重庆有限公司 Website compatibility setting method, device, equipment and medium
CN111159607A (en) * 2018-11-07 2020-05-15 中国移动通信集团重庆有限公司 Website compatibility setting method, device, equipment and medium
CN109684220A (en) * 2018-12-26 2019-04-26 苏州博纳讯动软件有限公司 A kind of browser compatibility analysis method based on event replay
EP3949342A4 (en) * 2019-04-01 2022-10-26 Citrix Systems, Inc. Web page duplication
WO2020199091A1 (en) 2019-04-01 2020-10-08 Citrix Systems, Inc. Web page duplication
CN113661694A (en) * 2019-04-01 2021-11-16 思杰系统有限公司 Web page replication
CN111913869A (en) * 2019-05-08 2020-11-10 立端科技股份有限公司 Test method and test system for automatically testing host operating system
TWI697772B (en) * 2019-05-08 2020-07-01 立端科技股份有限公司 Automatic test host operating system test method and test system thereof
CN111913869B (en) * 2019-05-08 2024-02-13 立端科技股份有限公司 Test method and test system for automatically testing host operating system
CN110245050A (en) * 2019-06-11 2019-09-17 四川长虹电器股份有限公司 A method of it realizing script error monitoring and reports
CN110351259A (en) * 2019-06-28 2019-10-18 深圳数位传媒科技有限公司 A kind of method and device obtaining APP authentication information based on network packet capturing
CN110502437A (en) * 2019-07-31 2019-11-26 惠州市德赛西威汽车电子股份有限公司 A kind of test macro and its method of on-vehicle Bluetooth application program
CN110502437B (en) * 2019-07-31 2023-07-28 惠州市德赛西威汽车电子股份有限公司 Test system and method for vehicle-mounted Bluetooth application program
CN111857932A (en) * 2020-07-27 2020-10-30 成都安恒信息技术有限公司 Web substitution and filling method for operation and maintenance auditing system based on puppeteer
CN113495841A (en) * 2021-06-28 2021-10-12 北京百度网讯科技有限公司 Compatibility detection method, device, equipment, storage medium and program product
CN113495841B (en) * 2021-06-28 2023-11-17 北京百度网讯科技有限公司 Compatibility detection method, device, equipment, storage medium and program product

Also Published As

Publication number Publication date
CN105468779B (en) 2018-12-28

Similar Documents

Publication Publication Date Title
CN105468779B (en) A kind of client Web application capture and playback system and method towards browser compatibility detection
US11659056B2 (en) Method and system for tracing end-to-end transaction, including browser side processing and capturing of end user performance experience
CN106503134B (en) Browser jumps to the method for data synchronization and device of application program
CN105556482B (en) Monitor mobile application performance
US20130159890A1 (en) Systems and methods for identifying user interface (ui) elements
US20110238723A1 (en) Systems and methods for web decoding
US10853218B1 (en) Recording and playback of a web browser session
US20150127705A1 (en) Standard commands for native commands
US11720379B2 (en) Acquisition process of GUI elements using user input
WO2014209263A1 (en) Contextual-based localization based on manual testing
CN111159014B (en) Response method and device for exploratory test, computer equipment and storage medium
US11113137B2 (en) Error incident fingerprinting with unique static identifiers
US11436133B2 (en) Comparable user interface object identifications
CN103177115A (en) Method and device of extracting page link of webpage
CN109240700B (en) Key code positioning method and system
CN117130941B (en) Interface automation method, system, equipment and medium based on browser plug-in
Wu et al. Detect cross-browser issues for javascript-based web applications based on record/replay
CN113987393A (en) Web page operation recorder, system, device and method
Wu et al. AppCheck: a crowdsourced testing service for android applications
CN109684220A (en) A kind of browser compatibility analysis method based on event replay
CN109062784B (en) Interface parameter constraint code entry positioning method and system
Panum et al. Kraaler: A user-perspective web crawler
CN109062785B (en) Interface parameter constraint code positioning method and system
CN112671615A (en) Method, system and storage medium for collecting operation behavior data of front-end user
He et al. A crowdsourcing framework for detecting cross-browser issues in web application

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant