CN106919374B - 一种脚本生成方法和装置 - Google Patents

一种脚本生成方法和装置 Download PDF

Info

Publication number
CN106919374B
CN106919374B CN201511000556.1A CN201511000556A CN106919374B CN 106919374 B CN106919374 B CN 106919374B CN 201511000556 A CN201511000556 A CN 201511000556A CN 106919374 B CN106919374 B CN 106919374B
Authority
CN
China
Prior art keywords
script
user
sub
service logic
acquiring
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.)
Active
Application number
CN201511000556.1A
Other languages
English (en)
Other versions
CN106919374A (zh
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201511000556.1A priority Critical patent/CN106919374B/zh
Publication of CN106919374A publication Critical patent/CN106919374A/zh
Application granted granted Critical
Publication of CN106919374B publication Critical patent/CN106919374B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本申请公开了一种脚本生成方法和装置,其中方法包括:当接收到合法用户的python程序编写指令后,触发脚本生成的准备过程;利用元数据库,触发所述用户选择当前待生成脚本对应的各子业务逻辑的字段名、表名和条件以及用于联结各子业务逻辑的联结符,并生成相应的业务逻辑脚本;对所述业务逻辑脚本进行联调测试,如果测试通过,则根据所述业务逻辑脚本生成相应的脚本文件。采用本发明,可以提高python脚本的生成效率、规范脚本格式且易于实现。

Description

一种脚本生成方法和装置
技术领域
本发明涉及计算机应用技术,特别是涉及一种脚本的生成方法和***。
背景技术
目前在分布式大数据(hadoop)中,提取—转换—加载(ETL,Extract-Transform-Load)数据的加工过程主要使用python脚本来完成的。目前,python脚本的生成,需要由程序编写人员采用人工方式进行编写。
上述传统的人工生成python脚本的方法对编写人员的要求会很高,比如,需要熟练掌握python语言中的各种规则、注释、函数方法、参数引用等,并且在编写过程中程序员需要经常对python语言中的方法和使用方式,从而会导致脚本生成的复杂性,进而降低了脚本生成的效率、增加了生成的难度。另外,由于实际应用中,每个人的脚本编写风格不一致,导致脚本的生成格式无法统一。
由此可见,现有的python脚本的生成方法,存在效率低、难度高、脚本格式不规范等问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种脚本的生成方法和装置,可以提高python脚本的生成效率,规范脚本格式且易于实现。
为了达到上述目的,本发明提出的技术方案为:
一种脚本生成方法,包括:
a、当接收到合法用户的python程序编写指令后,触发脚本生成的准备过程;
b、利用元数据库,触发所述用户选择当前待生成脚本对应的各子业务逻辑的字段名、表名和条件以及用于联结各子业务逻辑的联结符,并生成相应的业务逻辑脚本;
c、对所述业务逻辑脚本进行联调测试,如果测试通过,则根据所述业务逻辑脚本生成相应的脚本文件。
一种脚本生成装置,包括:
准备单元,用于当接收到合法用户的python程序编写指令后,触发脚本生成的准备过程;
脚本生成单元,用于利用元数据库,触发所述用户选择当前待生成脚本对应的各子业务逻辑的字段名、表名和条件以及用于联结各子业务逻辑的联结符,并生成相应的业务逻辑脚本;
测试单元,用于对所述业务逻辑脚本进行联调测试,如果测试通过,则根据所述业务逻辑脚本生成相应的脚本文件。
综上所述,本发明提出的脚本的生成方法和装置,在接收到合法用户的python程序编写指令后,自动触发脚本生成的准备过程;并在准备过程结束后,利用元数据库,触发用户采用选择的方式输入用于生成脚本的各子业务逻辑的字段名、表名和条件以及用于联结各子业务逻辑的联结符,并基于用户的输入结果自动生成相应的业务逻辑脚本。如此,一方面用户不需要采用人工编写的方式而只需要采用选择的方式来输入用于脚本生成的相关信息,因此不需要用户熟练掌握python语言中的各种规则、注释、函数方法、参数引用等,从而可以降低脚本生成的门槛,降低python脚本的生成难度,另一方面,还可以提高python脚本的生成效率,使得脚本格式具有一定的规范性。
附图说明
图1为本发明实施例的方法流程示意图;
图2为本发明实施例的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:利用元数据库,为用户提供脚本编写所需要的各种数据资源,以减少脚本生成时需要人工编写的信息,同时,基于元数据库,自动地根据用户选择的用于生成脚本的相关信息生成相应的脚本,并在脚本生成前自动进行检测,从而可以提高python脚本的生成效率、规范脚本格式且易于实现。
图1为本发明实施例一的方法流程示意图,如图1所示,该实施例主要包括:
步骤101、当接收到合法用户的python程序编写指令后,触发脚本生成的准备过程。
本步骤用于完成脚本生成的准备工作。
在实际应用中,用户身份的合法性验证,可以通过企业资源计划(ERP)认证实现,具体方法为本领域技术人员所掌握,在此不再赘述。
较佳地,上述脚本生成的准备过程可以包括下述步骤:
步骤1011、获取所述用户为待生成脚本确定的版本信息。
具体地,该版本信息可以由***自动生成由用户确定即可。
步骤1012、获取所述用户从预设的数据字典中选择出的当前待生成脚本使用的函数。
本步骤用于确定当前脚本所使用的***函数,这里,用户不需要手工输入,直接从预设的数据字典中调用即可,从而可以降低准备过程的复杂性、缩短准备时间。该数据字典,是在***数据库中预先配置好的,将包括python标准库中的***模块(即包或函数集)、SET命令参数、直接引用命令等。数据字典的具体配置方法为本领域技术人员所掌握,在此不再赘述。
步骤1013、获取所述用户为所述待生成脚本自定义的函数以及相应的函数注释。
本步骤,用于获取用户需要自定义的函数以及相应的注释,以确保脚本生成的规范性。
步骤1014、获取所述用户从所述数据字典中选择出的所述待生成脚本使用的引用命令。
本步骤,用户只需要从数据字典中选择出的需要使用的引用命令即可,因此,可以大幅度减少用户的工作量,提高准备过程的执行效率。
步骤1015、获取所述用户从预设的数据库集合、表类型集合和表名集合中,选择出的用于保存脚本运行结果的目标数据库、表类型和表名以及脚本运行时需要的脚本参数。
从上述准备过程中,可以看出用户在该过程中,脚本运行所需要的***函数、引用命令等信息均是通过用户在相关资源集合中进行选择的方式获取得到,从而可以大大幅度减少准备过程中用户的工作量,提高准备过程的执行效率。
步骤102、利用元数据库,触发所述用户选择当前待生成脚本对应的各子业务逻辑的字段名、表名和条件以及用于联结各子业务逻辑的联结符,并生成相应的业务逻辑脚本。
本步骤,用于生成业务逻辑脚本。这里,需要打通元数据库,以便为用户提供可以选择的表、字段信息,从而可以基于用户所选择的这些用于生成业务逻辑脚本的基本信息自动生成相应的业务逻辑脚本,这种自动生成业务逻辑脚本的方式,可以有效避免采用人工录入方式编辑业务逻辑脚本所存在的效率低、难于实现等问题。
较佳地,本步骤可以采用下述方法实现:
步骤1021、获取所述用户从所述元数据库中的字段集合中,选择出的每个所述子业务逻辑包含的字段名、表名和逻辑匹配条件,并将所述字段名、表名和逻辑匹配条件组合得到相应的子业务逻辑脚本。
本步骤中,需要根据用户选择出的字段名、表名和逻辑匹配条件生成相应的子业务逻辑脚本。用户只需要选择出用于生成各子业务逻辑脚本的字段名、表名和逻辑匹配条件即可,而不需要输入完整的脚本,因此,可以大幅度降低脚本生成的难度、提高脚本生成效率。
步骤1021、获取所述用户从预设的联结符集合中选择出的各子业务逻辑的联结符,并利用所述联结符将所述子业务逻辑联结,得到所述业务逻辑脚本。
本步骤,用于根据用户选择出的子业务逻辑的联结符,将步骤1021中得到的各子业务逻辑脚本进行组合,从而可以得到当前程序的业务逻辑脚本。
步骤103、对所述业务逻辑脚本进行联调测试,如果测试通过,则根据所述业务逻辑脚本生成相应的脚本文件。
本步骤,用于对步骤102得到的程序主体即业务逻辑脚本进行联调测试,如果测试通过,则生成相应的脚本文件。
这里,具体的联调测试以及脚本文件的生成为本领域技术人员所掌握,在此不再赘述。
图2为与上述方法相对应的一种脚本生成装置结构示意图,如图2所示,该装置包括:
准备单元,用于当接收到合法用户的python程序编写指令后,触发脚本生成的准备过程;
脚本生成单元,用于利用元数据库,触发所述用户选择当前待生成脚本对应的各子业务逻辑的字段名、表名和条件以及用于联结各子业务逻辑的联结符,并生成相应的业务逻辑脚本;
测试单元,用于对所述业务逻辑脚本进行联调测试,如果测试通过,则根据所述业务逻辑脚本生成相应的脚本文件。
较佳地,所述准备单元,进一步用于获取所述用户为待生成脚本确定的版本信息;获取所述用户从预设的数据字典中选择出的当前待生成脚本使用的函数;获取所述用户为所述待生成脚本自定义的函数以及相应的函数注释;获取所述用户从所述数据字典中选择出的所述待生成脚本使用的引用命令;获取所述用户从预设的数据库集合、表类型集合和表名集合中,选择出的用于保存脚本运行结果的目标数据库、表类型和表名以及脚本运行时需要的脚本参数。
较佳地,所述脚本生成单元,进一步用于获取所述用户从所述元数据库中的字段集合中,选择出的每个所述子业务逻辑包含的字段名、表名和逻辑匹配条件,并将所述字段名、表名和逻辑匹配条件组合得到相应的子业务逻辑脚本;获取所述用户从预设的联结符集合中选择出的各子业务逻辑的联结符,并利用所述联结符将所述子业务逻辑联结,得到所述业务逻辑脚本。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种脚本生成方法,其特征在于,包括:
a、当接收到合法用户的python程序编写指令后,触发脚本生成的准备过程;
b、利用元数据库,触发所述用户选择当前待生成脚本对应的各子业务逻辑的字段名、表名和条件以及用于联结各子业务逻辑的联结符,并生成相应的业务逻辑脚本;
c、对所述业务逻辑脚本进行联调测试,如果测试通过,则根据所述业务逻辑脚本生成相应的脚本文件;
其中,所述脚本生成的准备过程包括:
获取所述用户为待生成脚本确定的版本信息;
获取所述用户从预设的数据字典中选择出的当前待生成脚本使用的函数;
获取所述用户为所述待生成脚本自定义的函数以及相应的函数注释;
获取所述用户从所述数据字典中选择出的所述待生成脚本使用的引用命令;
获取所述用户从预设的数据库集合、表类型集合和表名集合中,选择出的用于保存脚本运行结果的目标数据库、表类型和表名以及脚本运行时需要的脚本参数。
2.根据权利要求1所述的方法,其特征在于,所述步骤b包括:
获取所述用户从所述元数据库中的字段集合中,选择出的每个所述子业务逻辑包含的字段名、表名和逻辑匹配条件,并将所述字段名、表名和逻辑匹配条件组合得到相应的子业务逻辑脚本;
获取所述用户从预设的联结符集合中选择出的各子业务逻辑的联结符,并利用所述联结符将所述子业务逻辑联结,得到所述业务逻辑脚本。
3.一种脚本生成装置,其特征在于,包括:
准备单元,用于当接收到合法用户的python程序编写指令后,触发脚本生成的准备过程,包括:获取所述用户为待生成脚本确定的版本信息;获取所述用户从预设的数据字典中选择出的当前待生成脚本使用的函数;获取所述用户为所述待生成脚本自定义的函数以及相应的函数注释;获取所述用户从所述数据字典中选择出的所述待生成脚本使用的引用命令;获取所述用户从预设的数据库集合、表类型集合和表名集合中,选择出的用于保存脚本运行结果的目标数据库、表类型和表名以及脚本运行时需要的脚本参数;
脚本生成单元,用于利用元数据库,触发所述用户选择当前待生成脚本对应的各子业务逻辑的字段名、表名和条件以及用于联结各子业务逻辑的联结符,并生成相应的业务逻辑脚本;
测试单元,用于对所述业务逻辑脚本进行联调测试,如果测试通过,则根据所述业务逻辑脚本生成相应的脚本文件。
4.根据权利要求3所述的装置,其特征在于,所述脚本生成单元,进一步用于获取所述用户从所述元数据库中的字段集合中,选择出的每个所述子业务逻辑包含的字段名、表名和逻辑匹配条件,并将所述字段名、表名和逻辑匹配条件组合得到相应的子业务逻辑脚本;获取所述用户从预设的联结符集合中选择出的各子业务逻辑的联结符,并利用所述联结符将所述子业务逻辑联结,得到所述业务逻辑脚本。
5.一种脚本生成装置,其特征在于,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1-2中任一项所述的脚本生成方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-2中任一项所述的脚本生成方法。
CN201511000556.1A 2015-12-28 2015-12-28 一种脚本生成方法和装置 Active CN106919374B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511000556.1A CN106919374B (zh) 2015-12-28 2015-12-28 一种脚本生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511000556.1A CN106919374B (zh) 2015-12-28 2015-12-28 一种脚本生成方法和装置

Publications (2)

Publication Number Publication Date
CN106919374A CN106919374A (zh) 2017-07-04
CN106919374B true CN106919374B (zh) 2021-06-29

Family

ID=59455747

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511000556.1A Active CN106919374B (zh) 2015-12-28 2015-12-28 一种脚本生成方法和装置

Country Status (1)

Country Link
CN (1) CN106919374B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255709A (zh) * 2017-12-26 2018-07-06 平安壹钱包电子商务有限公司 脚本测试代码编写的方法、装置、终端设备及存储介质
CN108446110B (zh) * 2018-03-14 2022-01-04 武汉斗鱼网络科技有限公司 Lua脚本生成方法、装置、终端及计算机可读介质
CN110825764B (zh) * 2018-07-23 2022-07-26 北京国双科技有限公司 一种sql脚本的生成方法、***、存储介质和处理器
CN109814864A (zh) * 2019-01-02 2019-05-28 北京永洪商智科技有限公司 一种数据可视化方法、可视化***、网页浏览***和设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101526917A (zh) * 2009-04-22 2009-09-09 南京大学 一种基于数据驱动的测试脚本繁殖方法
CN101727488A (zh) * 2009-12-17 2010-06-09 中国电力科学研究院 一种库表分区代码生成方法及装置
US8165990B2 (en) * 2009-06-15 2012-04-24 Microsoft Corporation Conversion of an application database to minimize time in single-user access mode
CN104615667A (zh) * 2015-01-13 2015-05-13 联动优势电子商务有限公司 一种基础数据生成方法、测试用数据生成方法及其装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070203933A1 (en) * 2006-02-24 2007-08-30 Iversen Heine K Method for generating data warehouses and OLAP cubes
CN101853152B (zh) * 2009-03-31 2014-05-07 华为技术有限公司 一种生成用户图形界面的方法和***
CN101944084A (zh) * 2009-07-09 2011-01-12 镇江华扬信息科技有限公司 一种基于sql脚本和ftp传输技术的数据库自动操作***
CN102122247A (zh) * 2011-03-17 2011-07-13 深圳市同洲软件有限公司 一种自动生成代码的***及方法
CN103455316A (zh) * 2012-07-27 2013-12-18 安徽工业大学 一种基于类的代码生成器
CN102968306B (zh) * 2012-11-29 2016-01-20 广东全通教育股份有限公司 一种基于数据模型驱动的代码自动生成方法和***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101526917A (zh) * 2009-04-22 2009-09-09 南京大学 一种基于数据驱动的测试脚本繁殖方法
US8165990B2 (en) * 2009-06-15 2012-04-24 Microsoft Corporation Conversion of an application database to minimize time in single-user access mode
CN101727488A (zh) * 2009-12-17 2010-06-09 中国电力科学研究院 一种库表分区代码生成方法及装置
CN104615667A (zh) * 2015-01-13 2015-05-13 联动优势电子商务有限公司 一种基础数据生成方法、测试用数据生成方法及其装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于模型的Fuzzing测试脚本自动化生成";侯莹 等;《计算机科学》;20130315;第40卷(第3期);第206-209页 *

Also Published As

Publication number Publication date
CN106919374A (zh) 2017-07-04

Similar Documents

Publication Publication Date Title
US20190339947A1 (en) Automatically generating code for application programming interfaces
CN106919374B (zh) 一种脚本生成方法和装置
CN107665216B (zh) 一种数据库访问方法及中间件
US20130179863A1 (en) Bug variant detection using program analysis and pattern identification
WO2018036342A1 (zh) 基于csar的模型文件的可视化设计方法及装置
CN106293664A (zh) 代码生成方法及装置
US9405518B2 (en) Leveraging legacy applications for use with modern applications
US8701082B2 (en) Method and apparatus for generating a model-driven development user interface
US20170293550A1 (en) Apparatus and method for testing interoperability of robot software
CN111026670B (zh) 测试用例的生成方法、测试用例的生成装置及存储介质
CN110727429B (zh) 一种前端页面的生成方法、装置及设备
WO2018188380A1 (zh) 一种添加控件标识的方法和装置
CN104049974A (zh) 控件动态组装方法和***
CN108874649B (zh) 自动化测试脚本的生成方法、装置及其计算机设备
US10496423B2 (en) Method for opening up data and functions of terminal application based on reconstruction technology
CN113505082B (zh) 应用程序测试方法及装置
US9507693B2 (en) Method, device and computer-readable storage medium for closure testing
CN112286814A (zh) 一种测试用例脚本的自动化生成***及方法
CN103631590A (zh) 自动化测试脚本的编辑方法
CN111177113A (zh) 数据迁移方法、装置、计算机设备和存储介质
CN110874216B (zh) 一种完备代码生成方法、装置、设备和存储介质
CN111857709A (zh) React组件和Flutter组件的映射方法、装置、电子设备及存储介质
CN113535141A (zh) 数据库操作代码的生成方法及装置
CN111078217A (zh) 脑图生成方法、装置和计算机可读存储介质
CN105867886B (zh) 一种写表格的方法及装置

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
GR01 Patent grant
GR01 Patent grant