CN106776343A - A kind of web application automated test tool and method - Google Patents
A kind of web application automated test tool and method Download PDFInfo
- Publication number
- CN106776343A CN106776343A CN201710023922.8A CN201710023922A CN106776343A CN 106776343 A CN106776343 A CN 106776343A CN 201710023922 A CN201710023922 A CN 201710023922A CN 106776343 A CN106776343 A CN 106776343A
- Authority
- CN
- China
- Prior art keywords
- language
- code
- test
- java
- web page
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及一种Web应用程序自动化测试工具及方法,包括:基本的浏览器及网页操作实现模块、自定义代码编译模块、启动测试程序模块。该系统有效解决了传统软件测试过程中手动测试任务繁重、测试代码编写复杂、无法自动化测试整个系统的缺点,在实际中有较强的应用价值。
The invention relates to a web application automatic testing tool and method, comprising: a basic browser and web page operation realization module, a self-defined code compiling module, and a starting test program module. This system effectively solves the shortcomings of heavy manual testing tasks, complicated test code writing, and inability to test the entire system automatically in the traditional software testing process, and has strong application value in practice.
Description
技术领域technical field
本发明涉及一种Web应用程序自动化测试工具及方法,属于软件测试的应用领域。The invention relates to a web application program automation testing tool and method, belonging to the application field of software testing.
背景技术Background technique
大型软件的测试是一件复杂而耗时的工作,自动化测试为测试程序的编写提供了很好的基础。The testing of large-scale software is a complex and time-consuming task, and automated testing provides a good foundation for writing test programs.
Selenium WebDriver是一个能够自动模拟人工操作的软件系统。通过使用Selenium WebDriver提供的接口函数,Java代码可以模拟人对网页进行点击,输入字符,选择下拉菜单等操作。但是Selenium只提供了基本操作的接口,要实现完整的测试序列,还需要大量的开发工作。Selenium WebDriver is a software system that can automatically simulate manual operations. By using the interface functions provided by Selenium WebDriver, the Java code can simulate operations such as clicking on a web page, inputting characters, and selecting a drop-down menu. However, Selenium only provides interfaces for basic operations, and a lot of development work is required to realize a complete test sequence.
JMeter功能强大,可以进行多线程,多用户的web程序测试,STAX也是一个支持多种功能多种语言的自动测试软件。但是这些工具设置起来比较麻烦,不适合处理用户自定义的复杂序列,用来模拟网页测试也不容易上手。Cucumber是国外的一款自动测试软件。该软件的优势在于,用户通过输入一段类似测试描述文字的代码,即可得到一个完整的测试程序。但是描述一个测试就需要较长的代码,同样不适合复杂的测试序列。Watir虽然使用方便,但是需要用户熟悉Ruby语言。JMeter is powerful and can perform multi-threaded, multi-user web program testing. STAX is also an automatic testing software that supports multiple functions and multiple languages. However, these tools are cumbersome to set up, not suitable for handling complex user-defined sequences, and it is not easy to use to simulate web page testing. Cucumber is a foreign automatic testing software. The advantage of this software is that the user can get a complete test program by inputting a code similar to the test description text. But describing a test requires a long code, and it is also not suitable for complex test sequences. Although Watir is easy to use, it requires users to be familiar with the Ruby language.
发明内容Contents of the invention
本发明技术解决问题:为了克服现有软件自动化测试技术的不足,本发明提供一种Web应用程序自动化测试方法和工具,解决了传统软件测试过程中手动测试任务繁重、测试代码编写复杂、无法自动化测试整个系统的缺点,同时本发明适用于多种Web应用程序的自动化测试。Problems solved by the technology of the present invention: In order to overcome the deficiencies of the existing software automation testing technology, the invention provides a method and tool for automatic testing of Web application programs, which solves the problems of heavy manual testing tasks, complicated test code writing and unautomation in the traditional software testing process To test the shortcomings of the whole system, the present invention is suitable for automatic testing of various web application programs.
本发明所采用的技术方案是:一种Web应用程序自动化测试工具,包括:基本的浏览器及网页操作实现模块、自定义代码编译模块、启动测试程序模块,其中:The technical scheme adopted in the present invention is: a kind of Web application automatic testing tool, comprises: basic browser and web page operation realization module, self-defined code compiling module, starting test procedure module, wherein:
基本的浏览器及网页操作实现模块:采用Java语言编写,基于Selenium编写大量的网页操作函数,实现基本的浏览器操作及基本的网页操作,为用户提供使用的内建函数接口;用户在编写测试程序时,通过调用内建函数来实现;Basic browser and web page operation implementation module: written in Java language, write a large number of web page operation functions based on Selenium, realize basic browser operations and basic web page operations, and provide users with built-in function interfaces; users are writing tests In the program, it is realized by calling the built-in function;
自定义代码编译模块:用于将自定义语言代码进行编译,生成Java代码;该模块包含T语言编译器及预处理器,T语言编译器以T语言测试代码为输入,通过预处理器将其改写为C语言风格代码,再通过词法分析,语法分析,生成语法树,在遍历语法树过程中,生成Java代码;T语言是Java语言和C语言的简化版,只需了解网页测试场景和简单的编程基础知识,就能轻松使用;预处理器用python语言编写;Custom code compilation module: used to compile custom language codes to generate Java codes; this module includes T language compiler and preprocessor, T language compiler takes T language test code as input, and converts it to Rewrite it as C language style code, and then generate a syntax tree through lexical analysis and syntax analysis, and generate Java code during the process of traversing the syntax tree; T language is a simplified version of Java language and C language, you only need to understand web page test scenarios and simple Basic knowledge of programming can be easily used; the preprocessor is written in python language;
启动测试程序模块:用于运行自定义代码编译模块生成的Java代码,进行Web应用程序的测试;Start the test program module: used to run the Java code generated by the custom code compilation module to test the Web application;
系统整合模块:用于将基本的浏览器及网页操作实现模块、自定义代码编译模块、启动测试程序模块整合到一起,使用python脚本将以上过程联合,形成完整测试流程,在测试场景及测试用例设计完成后,实现全自动化运行。System integration module: used to integrate basic browser and webpage operation implementation modules, custom code compilation modules, and start-up test program modules, and use python scripts to combine the above processes to form a complete test process. In test scenarios and test cases After the design is completed, fully automatic operation is realized.
所述基本的浏览器及网页操作实现模块包括:The basic browser and web page operation realization modules include:
(1)基本浏览器操作包括:浏览器自动启动、最大化、输入网址、关闭;(1) Basic browser operations include: browser auto-start, maximize, enter URL, close;
(2)基本网页操作包括:(2) Basic web page operations include:
a.通过ID,TAG_NAME,NAME,CLASS_NAME,CSS_SELECTOR,LINK_TEXT,PARTIAL_LINK_TEXT,XPATH特征定位网页元素,对网页元素进行操作,包括点击链接,点击按钮,选择下拉菜单,在文本框输入文字;a. Locate web page elements through ID, TAG_NAME, NAME, CLASS_NAME, CSS_SELECTOR, LINK_TEXT, PARTIAL_LINK_TEXT, XPATH features, and perform operations on web page elements, including clicking links, clicking buttons, selecting drop-down menus, and entering text in text boxes;
b.检查某网页元素是否存在,通过id,css selector特征,找到相应的网页元素;b. Check whether a webpage element exists, and find the corresponding webpage element through id and css selector features;
c.检查网页中表格单元的值,此类函数将网页元素的某个值与函数输入值相比较,通过ID,TAG_NAME,NAME,CLASS_NAME,CSS_SELECTOR,LINK_TEXT,PARTIAL_LINK_TEXT,XPATH定位表格,然后在表格中通过键值、偏移量定位单元格,再比较单元格中内容相应值,相应值包括比较单个和多个单元格的值;c. Check the value of the table unit in the web page. This function compares a certain value of the web page element with the function input value, locates the table by ID, TAG_NAME, NAME, CLASS_NAME, CSS_SELECTOR, LINK_TEXT, PARTIAL_LINK_TEXT, XPATH, and then in the table Locate the cell by key value and offset, and then compare the corresponding value of the content in the cell. The corresponding value includes comparing the value of a single cell and multiple cells;
d.检查网页中某表格某列是否都是或都包含某字符串,定位表中的列之后,对此列每个单元格进行检查;d. Check whether a certain column of a table in the web page is all or contains a certain string, and after locating the column in the table, check each cell of this column;
e.检查表格某一行或结构树中某一结点是否被勾选,此类操作需要定位表格行或复选框元素,进行检查;e. Check whether a row in the table or a node in the structure tree is checked. This type of operation needs to locate the row of the table or the check box element for checking;
f.得到某网页元素的某种值,例如,得到某表格中某个单元格的文本;f. Get a certain value of a certain webpage element, for example, get the text of a certain cell in a certain table;
g.向网页发送一个按键,如Enter;g. Send a button to the web page, such as Enter;
h.在网页上登录或退出;h. Log in or log out on the webpage;
i.上传文件;i. Upload files;
j.初始化表头;j. Initialize the table header;
k.其他网页操作,包括改换frame,清空文本框,检查某文本框或下拉菜单是否可用,关闭弹出的对话框;k. Other webpage operations, including changing the frame, clearing the text box, checking whether a text box or drop-down menu is available, and closing the pop-up dialog box;
(3)操作过程:(3) Operation process:
a.通过Selenium提供的接口,实现按ID,TAG_NAME,NAME,CLASS_NAME,CSS_SELECTOR,LINK_TEXT,PARTIAL_LINK_TEXT,XPATH来定位一个网页元素;a. Use the interface provided by Selenium to locate a web page element by ID, TAG_NAME, NAME, CLASS_NAME, CSS_SELECTOR, LINK_TEXT, PARTIAL_LINK_TEXT, XPATH;
在找到网页元素之后,通过Selenium接口,向该控件发送动作请求,例如,点击,或输入某键,在动作前后等待一个预定的时间,以确保网页元素可用,以及动作得以完成;After finding the webpage element, send an action request to the control through the Selenium interface, for example, click, or enter a certain key, and wait for a predetermined time before and after the action to ensure that the webpage element is available and the action is completed;
b.找不到某控件时抛出异常;b. An exception is thrown when a control cannot be found;
c.对选择下拉菜单的操作,创建一个Select类的实例,根据传入参数来调用此类的不同选择函数;c. For the operation of selecting the drop-down menu, create an instance of the Select class, and call different selection functions of this class according to the incoming parameters;
d.检查网页元素是否存在或是否符合某值的函数,在找不到此元素或值不符合要求时抛异常;d. A function to check whether a web page element exists or meets a certain value, and throws an exception when the element cannot be found or the value does not meet the requirements;
e.对表中单元格的检查和操作,先定位表,再根据表头信息和行/列信息定位单元格;e. To check and operate the cells in the table, first locate the table, and then locate the cells according to the header information and row/column information;
f.对上传文件这样的操作,取得文件路径,作为参数传给网页元素,以实现选择文件并上传。f. For operations such as uploading files, obtain the file path and pass it to the web page element as a parameter, so as to select and upload the file.
所述自定义代码编译模块实现过程:The implementation process of the custom code compilation module:
(1)自定义测试语言(T语言)(1) Custom test language (T language)
数据类型:字符串,整型,null,列表;Data type: string, integer, null, list;
基本语句:变量定义,函数定义,内建函数调用,自定义函数调用,for循环语句,if条件分支语句等。Basic statements: variable definition, function definition, built-in function call, custom function call, for loop statement, if conditional branch statement, etc.
语言基本特征及要求:Basic language features and requirements:
a.每个语句末尾加分号;a. Add a semicolon at the end of each statement;
b.支持中文字符串;b. Support Chinese character strings;
c.支持null;c. Support null;
d.自定义函数返回类型均为void;d. The return type of the custom function is void;
e.变量定义时无需指定数据类型;e. There is no need to specify the data type when defining the variable;
f.使用test关键字作为程序入口函数;f. Use the test keyword as the program entry function;
g.for循环语句格式为“for(iter in list){…;op(iter);…;},其中iter为循环变量,即list中的一个元素,in为关键字,list为待遍历数组,op()为在循环变量上进行的操作;g. The format of the for loop statement is "for(iter in list){...; op(iter);...;}, where iter is the loop variable, that is, an element in the list, in is the keyword, list is the array to be traversed, op() is the operation performed on the loop variable;
(2)代码预处理:使用python脚本对输入的T语言代码进行预处理,包括对for…in…循环进行改写,并对未声明变量进行声明,使之适合C风格代码;(2) Code preprocessing: use python script to preprocess the input T language code, including rewriting the for...in... loop, and declaring undeclared variables to make it suitable for C style code;
(3)编译及代码生成:通过改造一个LALR(0)的C语言编译器,使用三次遍历完成代码生成输入到编译器中的步骤二改写过的T语言代码,第一次遍历,词法分析和语法分析,为T语言代码生成相应的语法树;第二次遍历,语法检查;第三次遍历,遍历语法树的同时,为每个结点生成相应Java代码,最后,生成Java import语句,类定义语句、声明函数库所在类的实例,形成完整Java文件,并放入Maven的测试文件夹。(3) Compilation and code generation: By transforming a C language compiler of LALR(0), use three traversals to complete the code generation and input the T language code rewritten in Step 2 of the compiler, the first traversal, lexical analysis and Syntax analysis, generate corresponding syntax tree for T language code; second traversal, syntax check; third traversal, while traversing syntax tree, generate corresponding Java code for each node, finally, generate Java import statement, class Define the statement, declare the instance of the class where the function library is located, form a complete Java file, and put it into the Maven test folder.
所述启动测试程序模块实现过程:The implementation process of the start-up test program module:
(1)安装Java SDK,并修改系统环境变量,添加用户变量JAVA_HOME=Java安装路径;(1) install Java SDK, and revise system environment variable, add user variable JAVA_HOME=Java installation path;
(2)安装MAVEN,并修改系统环境变量,添加用户变量MVN_HOME=MAVEN安装路径;(2) Install MAVEN, and modify system environment variables, add user variable MVN_HOME=MAVEN installation path;
(3)在环境变量Path中添加”;%JAVA_HOME%\jre\bin;%MAVEN_HOME%\bin”;(3) Add ";%JAVA_HOME%\jre\bin;%MAVEN_HOME%\bin" to the environment variable Path;
(4)安装chrome Driver;(4) Install chrome Driver;
(5)打开“开始”->“命令提示符”,目录切换到项目home目录,运行命令”mvn test–Dtest=xxx”,其中”xxx”为待测Web应用程序功能模块测试Java代码的相对路径,一旦启动,便开始了自动测试,整个过程无须人工干预。(5) Open "Start" -> "Command Prompt", switch the directory to the project home directory, and run the command "mvn test–Dtest=xxx", where "xxx" is the relative name of the Java code tested by the functional module of the Web application to be tested The path, once started, is automatically tested without human intervention.
一种Web应用程序自动化测试方法,实现步骤如下:A method for automated testing of web applications, the implementation steps are as follows:
(1)基于Selenium编写大量的网页操作函数,实现基本的浏览器操作及基本的网页操作,为用户提供使用的内建函数接口;用户在编写测试程序时,通过调用内建函数来实现;(1) Write a large number of webpage operation functions based on Selenium, realize basic browser operations and basic webpage operations, and provide users with built-in function interfaces; when users write test programs, they can be realized by calling built-in functions;
(2)将自定义语言代码进行编译,生成Java代码,包含T语言编译器及预处理器,参考C语言语法,利用bison和flex工具,设计和编写T语言编译器及预处理器,编译器用C语言编写,预处理器用python语言编写;T语言编译器以T语言测试代码为输入,通过预处理器将其改写为C语言风格代码,再通过词法分析,语法分析,生成语法树,在遍历语法树过程中,生成Java代码;T语言是Java语言和C语言的简化版,只需了解网页测试场景和简单的编程基础知识,就能轻松使用;根据Web应用程序的需求和特点,利用selenium接口编写基本函数库,用Java语言编写;根据写好的函数库,在编译器中加上内建函数列表;(2) Compile the custom language code to generate Java code, including T language compiler and preprocessor, refer to C language grammar, use bison and flex tools, design and write T language compiler and preprocessor, for compiler Written in C language, the preprocessor is written in python language; the T language compiler takes the T language test code as input, rewrites it into C language style code through the preprocessor, and then generates a syntax tree through lexical analysis and syntax analysis. In the process of syntax tree, Java code is generated; T language is a simplified version of Java language and C language, and it can be easily used only by understanding web page test scenarios and simple programming basics; according to the needs and characteristics of web applications, use selenium Interface to write the basic function library, written in Java language; according to the written function library, add a list of built-in functions in the compiler;
(3)使用python语言编写脚本,将以上过程联合,形成完整测试流程,在测试场景及测试用例设计完成后,实现全自动化运行。(3) Use the python language to write scripts, combine the above processes to form a complete test process, and realize fully automated operation after the design of test scenarios and test cases is completed.
本发明与现有技术相比的有益效果在于:The beneficial effect of the present invention compared with prior art is:
(1)本发明提供了一种简单的非程序员也可以轻松上手的语言,让测试人员有更多精力专注测试场景及测试用例的设计,而非复杂语言的语法规范。(1) The present invention provides a simple language that can be easily used by non-programmers, allowing testers to focus more on the design of test scenarios and test cases, rather than the grammatical specification of complex languages.
(2)本发明包含了一个自定义语言编译模块,可以将语言自动编译为可运行的Java代码。(2) The present invention includes a self-defined language compiling module, which can automatically compile the language into executable Java codes.
(3)本发明提供了一种较为通用的Web测试框架,适用于多种Web应用系统,在对不同的Web应用系统进行测试的时候,只需要更新自定义测试语言测试代码即可。(3) The present invention provides a relatively general web testing framework, which is applicable to various web application systems. When testing different web application systems, it is only necessary to update the custom test language test code.
(4)本发明提供了一种自动化测试的框架,使用此框架可以自动测试整个Web应用系统,无需人工介入。测试程序的结果会生成测试报告自动保存到本地磁盘,方便人工审核测试结果,发现Web应用系统bug。(4) The present invention provides an automated testing framework, which can automatically test the entire Web application system without manual intervention. The result of the test program will generate a test report and automatically save it to the local disk, which is convenient for manually reviewing the test results and discovering bugs in the web application system.
附图说明Description of drawings
图1为本发明的实现流程图。Fig. 1 is the realization flowchart of the present invention.
具体实施方式detailed description
下面结合附图及实施例对本发明进一步详细说明。本发明的主要实施步骤如下:The present invention will be described in further detail below in conjunction with the accompanying drawings and embodiments. Main implementation steps of the present invention are as follows:
如图1所示,本发明主要由基本的浏览器及网页操作实现模块、自定义代码编译模块、启动测试程序模块、系统整合模块组成。As shown in Fig. 1, the present invention is mainly composed of a basic browser and web page operation realization module, a self-defined code compilation module, a start-up test program module, and a system integration module.
整体实现过程如下:The overall implementation process is as follows:
基本的浏览器及网页操作实现模块:该模块用Java语言编写,基于Selenium编写了大量的网页操作函数,主要实现了基本的浏览器操作及基本的网页操作,为用户提供使用本工具的内建函数接口。Basic browser and web page operation implementation module: This module is written in Java language, and a large number of web page operation functions are written based on Selenium. It mainly realizes basic browser operations and basic web page operations, and provides users with built-in Function interface.
自定义代码编译模块:用于将测试场景及测试用例设计模块中编写的自定义语言代码进行编译,生成Java代码。该模块包含T语言编译器及预处理器。编译器以T语言测试代码为输入,通过词法分析,语法分析,生成语法树,在遍历语法树过程中,生成目标Java测试代码。Custom code compilation module: used to compile the custom language code written in the test scenario and test case design module to generate Java code. This module contains T language compiler and preprocessor. The compiler takes the T language test code as input, generates a syntax tree through lexical analysis and syntax analysis, and generates the target Java test code during the process of traversing the syntax tree.
启动测试程序模块:用于运行自定义代码编译模块生成的Java代码,进行应用程序功能模块的测试。Start the test program module: used to run the Java code generated by the custom code compilation module to test the application function module.
自定义语言编译模块包括:Custom language compilation modules include:
(1)自定义测试语言(T语言)(1) Custom test language (T language)
数据类型:字符串,整型,null,列表;Data type: string, integer, null, list;
基本语句:变量定义,函数定义,内建函数调用,自定义函数调用,for循环语句,if条件分支语句等。Basic statements: variable definition, function definition, built-in function call, custom function call, for loop statement, if conditional branch statement, etc.
语言基本特征及要求:Basic language features and requirements:
a.每个语句末尾加分号;a. Add a semicolon at the end of each statement;
b.支持中文字符串;b. Support Chinese character strings;
c.支持null;c. Support null;
d.自定义函数返回类型均为void;d. The return type of the custom function is void;
e.变量定义时无需指定数据类型;e. There is no need to specify the data type when defining the variable;
f.使用test关键字作为程序入口函数;f. Use the test keyword as the program entry function;
g.for循环语句格式为“for(iter in list){…;op(iter);…;},其中iter为循环变量,即list中的一个元素,in为关键字,list为待遍历数组,op()为在循环变量上进行的操作;g. The format of the for loop statement is "for(iter in list){...; op(iter);...;}, where iter is the loop variable, that is, an element in the list, in is the keyword, list is the array to be traversed, op() is the operation performed on the loop variable;
h.支持字符串相加。h. Support string addition.
(2)代码预处理:使用python脚本对输入的T语言代码进行预处理,包括对for…in…循环进行改写,并对未声明变量进行声明等,使之适合C风格代码;(2) Code preprocessing: use python script to preprocess the input T language code, including rewriting the for...in... loop, and declaring undeclared variables, etc., to make it suitable for C style code;
(3)编译及代码生成:通过改造一个LALR(0)的C语言编译器,使用三次遍历完成代码生成。第一次遍历,词法分析和语法分析,为T语言代码生成相应的语法树;第二次遍历,语法检查;第三次遍历,遍历语法树的同时,为每个结点生成相应Java代码。最后,生成Javaimport语句,类定义语句等,形成完整Java文件,并放入Maven的测试文件夹。(3) Compilation and code generation: By modifying a C language compiler of LALR(0), code generation is completed using three traversals. The first traversal, lexical analysis and syntax analysis, generates the corresponding syntax tree for the T language code; the second traversal, syntax checking; the third traversal, while traversing the syntax tree, generates the corresponding Java code for each node. Finally, generate Javaimport statements, class definition statements, etc. to form a complete Java file and put it into the Maven test folder.
启动测试程序模块实现过程:Start the test program module implementation process:
(1)安装Java,并修改系统环境变量,添加用户变量JAVA_HOME=Java安装路径;(1) install Java, and revise system environment variable, add user variable JAVA_HOME=Java installation path;
(2)安装MAVEN,并修改系统环境变量,添加用户变量MVN_HOME=MAVEN安装路径;(2) Install MAVEN, and modify system environment variables, add user variable MVN_HOME=MAVEN installation path;
(3)在环境变量Path中添加”;%JAVA_HOME%\jre\bin;%MAVEN_HOME%\bin”;(3) Add ";%JAVA_HOME%\jre\bin;%MAVEN_HOME%\bin" to the environment variable Path;
(4)安装chrome Driver;(4) Install chrome Driver;
(5)打开“开始”->“命令提示符”,目录切换到项目home目录,运行命令”mvn test–Dtest=xxx”,其中”xxx”为待测Web应用程序功能模块测试Java代码的相对路径。(5) Open "Start" -> "Command Prompt", switch the directory to the project home directory, and run the command "mvn test–Dtest=xxx", where "xxx" is the relative name of the Java code tested by the functional module of the Web application to be tested path.
系统整合模块实现过程:Implementation process of the system integration module:
使用python脚本将以上过程联合,形成完整测试流程。Use the python script to combine the above processes to form a complete test process.
上述各模块的具体实现过程如下:The specific implementation process of the above modules is as follows:
1.基本的浏览器及网页操作实现模块1. Basic browser and web page operation implementation module
该模块用Java语言,基于Selenium接口,编写网页操作函数,主要实现了基本的浏览器操作及基本的网页操作,为用户提供使用本工具的内建函数接口。This module uses Java language, based on Selenium interface, to write webpage operation functions, mainly realizes basic browser operations and basic webpage operations, and provides users with built-in function interfaces for using this tool.
基本浏览器操作包括:浏览器自动启动、最大化、输入网址、关闭等;Basic browser operations include: browser auto-start, maximize, enter URL, close, etc.;
基本网页操作:根据id,css selector,link text等寻找网页元素、根据id,cssselector,link text等点击网页元素、根据id,css selector,link text等填充文本框、根据id,css selector,link text等选中复选框、根据id,css selector等定位表格元素、查看表格某元素是否为预期值、查看表格中某单元格是否包含某字符串等。主要有以下几种操作:Basic webpage operations: find webpage elements according to id, css selector, link text, etc., click webpage elements according to id, css selector, link text, etc., fill text boxes according to id, css selector, link text, etc., according to id, css selector, link text Check the check box, locate table elements according to id, css selector, etc., check whether an element in the table is the expected value, check whether a cell in the table contains a certain string, etc. There are mainly the following operations:
(1)通过Selenium提供的接口,实现按ID,TAG_NAME,NAME,CLASS_NAME,CSS_SELECTOR,LINK_TEXT,PARTIAL_LINK_TEXT,XPATH来定位一个网页元素。然后,对网页元素进行操作,如点击链接,点击按钮,选择下拉菜单,在文本框输入文字等。(1) Use the interface provided by Selenium to locate a web page element by ID, TAG_NAME, NAME, CLASS_NAME, CSS_SELECTOR, LINK_TEXT, PARTIAL_LINK_TEXT, XPATH. Then, perform operations on web page elements, such as clicking a link, clicking a button, selecting a drop-down menu, entering text in a text box, and so on.
(2)检查某网页元素是否存在,通过ID,TAG_NAME,NAME,CLASS_NAME,CSS_SELECTOR,LINK_TEXT,PARTIAL_LINK_TEXT,XPATH,找到相应的网页元素。(2) Check whether a webpage element exists, and find the corresponding webpage element through ID, TAG_NAME, NAME, CLASS_NAME, CSS_SELECTOR, LINK_TEXT, PARTIAL_LINK_TEXT, XPATH.
(3)检查网页中表格单元的值。此类函数将网页元素的某个值与函数输入值相比较。通过ID,TAG_NAME,NAME,CLASS_NAME,CSS_SELECTOR,LINK_TEXT,PARTIAL_LINK_TEXT,XPATH定位表格,然后在表格中通过键值或偏移量定位单元格,再比较其相应值。包括比较单个和多个单元格的值。(3) Check the value of the table cell in the web page. These functions compare a value of a web page element to a function input value. Locate the table by ID, TAG_NAME, NAME, CLASS_NAME, CSS_SELECTOR, LINK_TEXT, PARTIAL_LINK_TEXT, XPATH, and then locate the cell by key value or offset in the table, and then compare its corresponding value. Includes comparing single and multiple cell values.
(4)检查网页中某表格列都是某字符串或都包含某字符串。定位表中的列之后,对此列每个单元格进行检查。(4) Check that a table column in the webpage is all a certain character string or contains a certain character string. After locating a column in the table, each cell of the column is checked.
(5)检查表格某一行或结构树中某一结点是否被勾选。此类操作需要定位表格行或复选框元素,进行检查。(5) Check whether a row in the table or a node in the structure tree is checked. Such operations require positioning a table row or checkbox element for checking.
(6)得到某网页元素的某种值,例如,得到某表格中某个单元格的文本。(6) Get a certain value of a certain webpage element, for example, get the text of a certain cell in a certain table.
(7)向网页发送一个按键,如Enter。(7) Send a button to the web page, such as Enter.
(8)关闭某弹出对话框。(8) Close a pop-up dialog box.
(9)勾选表中某行行首的复选框,或结构树中的某个复选框。通过值为"preceding-sibling::span[1]"的XPATH来定位复选框。(9) Check the check box at the beginning of a row in the table, or a check box in the structure tree. Locate the checkbox by XPATH with value "preceding-sibling::span[1]".
(10)检查某控件是否可用。使用isEnabled函数来实现。(10) Check whether a certain control is available. Use the isEnabled function to achieve.
(11)在网页上登录或退出。这是通过输入用户名,密码,点击登录这一系列的操作实现的。具体值由用户在调用函数时输入。(11) Log in or log out on the web page. This is achieved by entering a user name, password, and clicking to log in. The specific value is entered by the user when calling the function.
(12)其他网页操作,如改换frame,清空文本框,检查某文本框或下拉菜单是否可用,关闭弹出的对话框等。(12) Other webpage operations, such as changing the frame, clearing the text box, checking whether a certain text box or drop-down menu is available, closing the pop-up dialog box, etc.
(13)对选择下拉菜单的操作,创建一个Select类的实例,根据传入参数来调用此类的不同选择函数。(13) For the operation of selecting the pull-down menu, create an instance of the Select class, and call different selection functions of this class according to the incoming parameters.
(14)检查网页元素是否存在或是否符合某值的函数,在找不到此元素或值不符合要求时抛异常。(14) A function to check whether a web page element exists or whether it meets a certain value, and throws an exception when the element cannot be found or the value does not meet the requirements.
(15)对上传文件这样的操作,取得文件路径,作为参数传给网页元素,以实现选择文件并上传。(15) For the operation of uploading a file, the file path is obtained, and passed as a parameter to the webpage element, so as to realize selecting and uploading a file.
对不同类型的网页操作,在操作之前和操作之后,加上了不同的延时。此延时参数可调,以保证测试时有足够的等待时间使网页做出反应。此外,对需要等待时间较长的检查操作,进行轮询,以保证有足够的等待时间,以及网页做出反应后及时返回。定义BaseCommon类,上述所有函数都作为此类的成员函数声明和定义。For different types of web page operations, different delays are added before and after the operation. This delay parameter is adjustable to ensure that there is enough waiting time for the web page to respond during the test. In addition, polling is performed for checking operations that require a long waiting time, so as to ensure that there is enough waiting time and that the webpage returns in time after responding. Define the BaseCommon class, and all the above functions are declared and defined as member functions of this class.
2.自定义代码编译模块2. Custom code compilation module
(1)自定义测试语言(T语言)(1) Custom test language (T language)
T语言与C语言类似,使用基本的过程式编程方法,用户通过调用内建函数来实现网页操作。而操作流程可以使用循环语句和条件分支语句来控制。T语言中的变量无须定义类型,一律视为字符串,同时支持字符串用加号连接,并使用null来代表未赋值的字符串。用T语言编写测试程序,比用Java或C语言写代码要简单很多,因此,即使没有很多编程经验的人,只要熟悉业务场景,也能使用本工具。The T language is similar to the C language, using the basic procedural programming method, and the user realizes the operation of the webpage by calling the built-in function. The operation flow can be controlled by loop statements and conditional branch statements. Variables in the T language do not need to define a type, they are all treated as strings, and support strings connected with plus signs, and use null to represent unassigned strings. Writing test programs in T language is much simpler than writing code in Java or C language. Therefore, even people without much programming experience can use this tool as long as they are familiar with business scenarios.
数据类型:字符串,整型,null,列表;Data type: string, integer, null, list;
基本语句:变量定义,函数定义,内建函数调用,自定义函数调用,for循环语句,if条件分支语句等。Basic statements: variable definition, function definition, built-in function call, custom function call, for loop statement, if conditional branch statement, etc.
语言基本特征及要求:Basic language features and requirements:
a.每个语句末尾加分号;a. Add a semicolon at the end of each statement;
b.支持中文字符串;b. Support Chinese character strings;
c.支持null;c. Support null;
d.自定义函数返回类型均为void;d. The return type of the custom function is void;
e.变量定义时无需指定数据类型;e. There is no need to specify the data type when defining the variable;
f.使用test关键字作为程序入口函数;f. Use the test keyword as the program entry function;
g.for循环语句格式为“for(iter in list){…;op(iter);…;},其中iter为循环变量,即list中的一个元素,in为关键字,list为待遍历数组,op()为在循环变量上进行的操作;g. The format of the for loop statement is "for(iter in list){...; op(iter);...;}, where iter is the loop variable, that is, an element in the list, in is the keyword, list is the array to be traversed, op() is the operation performed on the loop variable;
h.支持字符串相加。h. Support string addition.
(2)代码预处理:使用python脚本对输入的T语言代码进行预处理,对for…in…循环进行改写,改为C语言的for(iter=0;iter<length;iter++)形式。对未声明变量进行声明,将声明语句放到块首,使之适合C语言风格。(2) Code preprocessing: use the python script to preprocess the input T language code, rewrite the for...in... loop, and change it to the for (iter=0; iter<length; iter++) form of C language. Declare undeclared variables and put the declaration statement at the beginning of the block to make it suitable for the C language style.
(3)编译及代码生成:根据flex和bison为T语言生成词法分析器和语法分析器,使用三次遍历完成代码生成。浏览器和网页操作函数都作为内建函数处理。(3) Compilation and code generation: Generate a lexical analyzer and a syntax analyzer for the T language according to flex and bison, and use three traversals to complete the code generation. Both browser and web page manipulation functions are handled as built-in functions.
第一次遍历,词法分析和语法分析,为T语言代码生成相应的语法树,在生成过程中如有不能解析的语句,则报错;The first traversal, lexical analysis and syntax analysis, generates the corresponding syntax tree for the T language code. If there is a sentence that cannot be parsed during the generation process, an error will be reported;
第二次遍历,语法检查,对输入代码的语法错误进行提示,例如,对用户自定义函数的调用,如果参数个数不对,则报错;The second traversal, grammar check, prompts for grammar errors in the input code, for example, if the number of parameters is incorrect for a call to a user-defined function, an error will be reported;
第三次遍历,遍历语法树的同时,为每个结点生成相应Java代码。在生成Java代码时,按照T语言与Java语言的对应关系,将相应Java代码输出到文件中。例如,在每个语句结束时,输出分号。再如,对于字符串相加操作,输出用双引号引起来的字符串,以及两个字符串中间的加号。对null标识符,作为一个单独的标识符来处理。当函数名为test时,声明为:The third traversal, while traversing the syntax tree, generates corresponding Java code for each node. When generating the Java code, output the corresponding Java code to the file according to the corresponding relationship between the T language and the Java language. For example, at the end of each statement, output a semicolon. As another example, for the operation of adding strings, the string enclosed in double quotes and the plus sign between the two strings are output. For null identifiers, it is treated as a separate identifier. When the function name is test, it is declared as:
@Test@Test
public void test()public void test()
以表示这是Java程序中的test函数。To indicate that this is the test function in the Java program.
给函数中的变量,添加String类型声明。如果是字符串数组,则以String[]类型来声明。为分支语句生成相应的if和else关键字,以及在恰当的位置生成大括号。Add a String type declaration to the variable in the function. If it is a string array, it is declared with the String[] type. Generate corresponding if and else keywords for branch statements, and generate curly braces at appropriate positions.
最后,生成Java import语句,将selenium等必需的包引入。另外,根据测试文件名定义测试类,声名此类的对象。声明BaseCommon类对象base。对T语言代码中调用的内建函数,按已定义函数处理,在生成代码时加“base.”。Finally, a Java import statement is generated to import necessary packages such as selenium. In addition, define the test class according to the test file name, and declare the object of this class. Declare BaseCommon class object base. The built-in functions called in T language codes are treated as defined functions, and "base." is added when generating codes.
生成完整.java文件后,将.java文件放入Maven的测试文件夹。After generating the complete .java file, put the .java file into Maven's test folder.
3.启动测试程序模块3. Start the test program module
(1)安装Java,并修改系统环境变量,添加用户变量JAVA_HOME=Java安装路径;(1) install Java, and revise system environment variable, add user variable JAVA_HOME=Java installation path;
(2)安装MAVEN,并修改系统环境变量,添加用户变量MVN_HOME=MAVEN安装路径;(2) Install MAVEN, and modify system environment variables, add user variable MVN_HOME=MAVEN installation path;
(3)在环境变量Path中添”;%JAVA_HOME%\jre\bin;%MAVEN_HOME%\bin”;(3) Add ";%JAVA_HOME%\jre\bin;%MAVEN_HOME%\bin" in the environment variable Path;
(4)安装chrome Driver;(4) Install chrome Driver;
(5)打开“开始”->“命令提示符”,目录切换到项目home目录,运行命令”mvn test–Dtest=xxx”,其中”xxx”为待测Web应用程序功能模块测试Java代码的相对路径。(5) Open "Start" -> "Command Prompt", switch the directory to the project home directory, and run the command "mvn test–Dtest=xxx", where "xxx" is the relative name of the Java code tested by the functional module of the Web application to be tested path.
本发明未详细阐述部分属于本领域公知技术。Parts not described in detail in the present invention belong to the well-known technology in the art.
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。The above are only some specific implementations of the present invention, but the protection scope of the present invention is not limited thereto. Any changes or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in the present invention should be covered within the protection scope of the present invention.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710023922.8A CN106776343A (en) | 2017-01-13 | 2017-01-13 | A kind of web application automated test tool and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710023922.8A CN106776343A (en) | 2017-01-13 | 2017-01-13 | A kind of web application automated test tool and method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106776343A true CN106776343A (en) | 2017-05-31 |
Family
ID=58948184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710023922.8A Pending CN106776343A (en) | 2017-01-13 | 2017-01-13 | A kind of web application automated test tool and method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776343A (en) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678952A (en) * | 2017-09-22 | 2018-02-09 | 郑州云海信息技术有限公司 | A kind of method and system of Webpage element operation |
CN107704389A (en) * | 2017-09-26 | 2018-02-16 | 无线生活(杭州)信息科技有限公司 | A kind of page method of testing and device |
CN107783902A (en) * | 2017-09-26 | 2018-03-09 | 甘肃万维信息技术有限责任公司 | A kind of Selenium automated testing methods and system from coding |
CN108650149A (en) * | 2018-04-24 | 2018-10-12 | 平安科技(深圳)有限公司 | Server testing method, device, equipment and computer readable storage medium |
CN108733566A (en) * | 2018-05-23 | 2018-11-02 | 郑州云海信息技术有限公司 | A kind of virtualization system automatization test system and method based on python |
CN108829583A (en) * | 2018-05-24 | 2018-11-16 | 广东睿江云计算股份有限公司 | A kind of page compatibility test method and device based on Selenium |
CN109032870A (en) * | 2018-08-03 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | Method and apparatus for test equipment |
CN109032936A (en) * | 2018-07-13 | 2018-12-18 | 陈希 | A kind of desktop automatic test development approach and system |
CN109491890A (en) * | 2018-10-16 | 2019-03-19 | 深圳壹账通智能科技有限公司 | The interface scans method and terminal device of application program |
CN109739751A (en) * | 2018-12-19 | 2019-05-10 | 贵阳朗玛信息技术股份有限公司 | Realize the method and system of webpage automatic test |
WO2019100576A1 (en) * | 2017-11-27 | 2019-05-31 | 平安科技(深圳)有限公司 | Automated test management method and apparatus, terminal device, and storage medium |
CN110018953A (en) * | 2018-01-10 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | Use method, storage medium, equipment and the system of python test JS code |
CN110727591A (en) * | 2019-10-11 | 2020-01-24 | 集奥聚合(北京)人工智能科技有限公司 | Modeling page-based automatic testing method |
CN111162972A (en) * | 2019-12-31 | 2020-05-15 | 扬州航盛科技有限公司 | Vehicle-mounted Ethernet protocol stack automatic testing method based on semantic analysis |
CN111708474A (en) * | 2020-05-26 | 2020-09-25 | 广州朗国电子科技有限公司 | Method and device for simulating user touch operation, storage medium and all-in-one machine equipment |
CN112328488A (en) * | 2020-11-09 | 2021-02-05 | 深圳证券通信有限公司 | Control object identification method for UI (user interface) automatic test |
CN112346726A (en) * | 2020-03-16 | 2021-02-09 | 成都华微电子科技有限公司 | Method for automatically generating design code based on form information |
CN112416322A (en) * | 2020-11-20 | 2021-02-26 | 城云科技(中国)有限公司 | Implementation method for acquiring previous data in data set according to self-circulation function |
CN112651698A (en) * | 2020-09-01 | 2021-04-13 | 广西辰亚信息技术有限公司 | Legal process automation intelligent system |
CN112905456A (en) * | 2021-02-07 | 2021-06-04 | 重庆富民银行股份有限公司 | Automatic test report generation method based on MAVEN life cycle |
CN114064041A (en) * | 2021-11-18 | 2022-02-18 | 宁波波导易联电子有限公司 | Method and system for automatically generating car control codes for car control matrix file through Android system |
CN115630086A (en) * | 2022-12-22 | 2023-01-20 | 西安葡萄城软件有限公司 | Method for converting Access application into Web application program |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7698688B2 (en) * | 2008-03-28 | 2010-04-13 | International Business Machines Corporation | Method for automating an internationalization test in a multilingual web application |
CN104021080A (en) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | Automatic testing system based on custom scripts |
CN104809068A (en) * | 2015-05-08 | 2015-07-29 | 浪潮电子信息产业股份有限公司 | Web automatic testing framework construction method based on selenium |
CN104820640A (en) * | 2015-05-19 | 2015-08-05 | 广州华多网络科技有限公司 | Webpage testing method and device |
CN105354035A (en) * | 2015-11-17 | 2016-02-24 | 天津橙子科技有限公司 | Method for compiling test case of web engineering |
-
2017
- 2017-01-13 CN CN201710023922.8A patent/CN106776343A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7698688B2 (en) * | 2008-03-28 | 2010-04-13 | International Business Machines Corporation | Method for automating an internationalization test in a multilingual web application |
CN104021080A (en) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | Automatic testing system based on custom scripts |
CN104809068A (en) * | 2015-05-08 | 2015-07-29 | 浪潮电子信息产业股份有限公司 | Web automatic testing framework construction method based on selenium |
CN104820640A (en) * | 2015-05-19 | 2015-08-05 | 广州华多网络科技有限公司 | Webpage testing method and device |
CN105354035A (en) * | 2015-11-17 | 2016-02-24 | 天津橙子科技有限公司 | Method for compiling test case of web engineering |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678952A (en) * | 2017-09-22 | 2018-02-09 | 郑州云海信息技术有限公司 | A kind of method and system of Webpage element operation |
CN107704389A (en) * | 2017-09-26 | 2018-02-16 | 无线生活(杭州)信息科技有限公司 | A kind of page method of testing and device |
CN107783902A (en) * | 2017-09-26 | 2018-03-09 | 甘肃万维信息技术有限责任公司 | A kind of Selenium automated testing methods and system from coding |
WO2019100576A1 (en) * | 2017-11-27 | 2019-05-31 | 平安科技(深圳)有限公司 | Automated test management method and apparatus, terminal device, and storage medium |
CN110018953B (en) * | 2018-01-10 | 2022-12-23 | 武汉斗鱼网络科技有限公司 | Method, storage medium, device and system for testing JS code by using python |
CN110018953A (en) * | 2018-01-10 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | Use method, storage medium, equipment and the system of python test JS code |
CN108650149A (en) * | 2018-04-24 | 2018-10-12 | 平安科技(深圳)有限公司 | Server testing method, device, equipment and computer readable storage medium |
CN108650149B (en) * | 2018-04-24 | 2021-10-01 | 平安科技(深圳)有限公司 | Server testing method, device, equipment and computer readable storage medium |
CN108733566A (en) * | 2018-05-23 | 2018-11-02 | 郑州云海信息技术有限公司 | A kind of virtualization system automatization test system and method based on python |
CN108829583A (en) * | 2018-05-24 | 2018-11-16 | 广东睿江云计算股份有限公司 | A kind of page compatibility test method and device based on Selenium |
CN109032936B (en) * | 2018-07-13 | 2021-11-05 | 陈希 | Desktop automation test development method and system |
CN109032936A (en) * | 2018-07-13 | 2018-12-18 | 陈希 | A kind of desktop automatic test development approach and system |
CN109032870A (en) * | 2018-08-03 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | Method and apparatus for test equipment |
CN109491890A (en) * | 2018-10-16 | 2019-03-19 | 深圳壹账通智能科技有限公司 | The interface scans method and terminal device of application program |
CN109739751A (en) * | 2018-12-19 | 2019-05-10 | 贵阳朗玛信息技术股份有限公司 | Realize the method and system of webpage automatic test |
CN110727591A (en) * | 2019-10-11 | 2020-01-24 | 集奥聚合(北京)人工智能科技有限公司 | Modeling page-based automatic testing method |
CN111162972A (en) * | 2019-12-31 | 2020-05-15 | 扬州航盛科技有限公司 | Vehicle-mounted Ethernet protocol stack automatic testing method based on semantic analysis |
CN112346726A (en) * | 2020-03-16 | 2021-02-09 | 成都华微电子科技有限公司 | Method for automatically generating design code based on form information |
CN112346726B (en) * | 2020-03-16 | 2023-12-12 | 成都华微电子科技股份有限公司 | Method for automatically generating design codes based on form information |
CN111708474A (en) * | 2020-05-26 | 2020-09-25 | 广州朗国电子科技有限公司 | Method and device for simulating user touch operation, storage medium and all-in-one machine equipment |
CN112651698A (en) * | 2020-09-01 | 2021-04-13 | 广西辰亚信息技术有限公司 | Legal process automation intelligent system |
CN112328488A (en) * | 2020-11-09 | 2021-02-05 | 深圳证券通信有限公司 | Control object identification method for UI (user interface) automatic test |
CN112416322A (en) * | 2020-11-20 | 2021-02-26 | 城云科技(中国)有限公司 | Implementation method for acquiring previous data in data set according to self-circulation function |
CN112905456A (en) * | 2021-02-07 | 2021-06-04 | 重庆富民银行股份有限公司 | Automatic test report generation method based on MAVEN life cycle |
CN112905456B (en) * | 2021-02-07 | 2023-06-06 | 重庆富民银行股份有限公司 | MAVEN life cycle-based automatic test report generation method |
CN114064041B (en) * | 2021-11-18 | 2022-08-02 | 宁波波导易联电子有限公司 | Method and system for generating car control codes for car control matrix file through Android system |
CN114064041A (en) * | 2021-11-18 | 2022-02-18 | 宁波波导易联电子有限公司 | Method and system for automatically generating car control codes for car control matrix file through Android system |
CN115630086A (en) * | 2022-12-22 | 2023-01-20 | 西安葡萄城软件有限公司 | Method for converting Access application into Web application program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776343A (en) | A kind of web application automated test tool and method | |
US10162612B2 (en) | Method and apparatus for inventory analysis | |
Heitkötter et al. | Cross-platform model-driven development of mobile applications with md2 | |
CN102222039B (en) | DSL is used to call API with testing software | |
Moldovan et al. | AG: Imperative-style Coding with Graph-based Performance | |
CN102819492B (en) | Keyword driven automatic testing frame on basis of Android | |
US20070044066A1 (en) | Embedded multi-language programming | |
CN101866315B (en) | Test method and system of software development tool | |
CN111176629A (en) | Application development method and device | |
CN111796831A (en) | Compiling method and device for multi-chip compatibility | |
CN115639980A (en) | Draggable front-end logic arrangement method and device for low-code platform | |
CN112988165A (en) | Kubernetes-based interactive modeling method and device, electronic equipment and storage medium | |
CN112230904A (en) | Code generation method and device based on interface document, storage medium and server | |
Savic et al. | Use Case Specification Using the SILABREQ Domain Specific Language. | |
CN117707499A (en) | Multi-source model algorithm analyzer plug-in and compiling algorithm based on virtualization technology | |
CN111694738B (en) | Method for generating SQL test script | |
CN115525282A (en) | Method for realizing cross-platform desktop application program and related equipment thereof | |
CN112597037B (en) | Java and Python combined automatic script development method and device | |
Santurkar et al. | Stormgen-a domain specific language to create ad-hoc storm topologies | |
Granda et al. | Towards a Model-Driven Testing Framework for GUI Test Cases Generation from User Stories. | |
Oliveira | pytest Quick Start Guide: Write better Python code with simple and maintainable tests | |
Fritzson et al. | Metamodelica–a symbolic-numeric modelica language and comparison to julia | |
US11573787B1 (en) | Hot reloading a running application with an unsaved source code change | |
Samoylov | Learn Java 12 Programming: A step-by-step guide to learning essential concepts in Java SE 10, 11, and 12 | |
CN115407997A (en) | Agile development application method and system based on low codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170531 |