Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
»ùÓÚpython+Testlink+JenkinsʵÏֵĽӿÚ×Ô¶¯»¯²âÊÔ¿ò¼ÜV3.0
 
  2986  次浏览      30
 2019-3-20
 

 

±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎÄ»ùÓÚpython+Testlink+JenkinsʵÏֵĽӿÚ×Ô¶¯»¯²âÊÔ¿ò¼Ü,½øÐпª·¢»·¾³ÅäÖã¬Ä£¿é´´½¨µÈ£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£

Ŀ¼

1¡¢ ¿ª·¢»·¾³

2¡¢ Ö÷Òª¹¦ÄÜÂß¼­½éÉÜ

3¡¢ ¿ò¼Ü¹¦Äܼò½é

4¡¢ Êý¾Ý¿âµÄ´´½¨

5¡¢ ¿ò¼ÜÄ£¿éÏêϸ½éÉÜ

6¡¢ TestlinkÏà¹ØÅäÖÃÓëÓÃÀý¹ÜÀí

a) APIÏà¹ØÅäÖÃ

b) ÏîÄ¿Ïà¹ØÅäÖÃ

c) ÓÃÀý¹ÜÀí

¢Ù ²½Ö趯×÷ºÍÔ¤ÆÚ½á¹ûÌîд¹æ·¶

¢Ú ²ÎÊý»¯

¢Û ÓÃÀýÖ´ÐÐÒÀÀµ

¢Ü ½ûÓÃÓÃÀý

7¡¢ ÔËÐнá¹û

8¡¢ Ô´ÂëÏÂÔØ

9¡¢ ˵Ã÷

1¡¢¿ª·¢»·¾³

win7\Windows Server 2008 R2 x64

PyCharm 4.0.5

setuptools-29.0.1.zip

ÏÂÔØµØÖ·£ºhttp://pan.baidu.com/s/1mhMSAkK

¹Ù·½ÏÂÔØµØÖ·£ºhttps://pypi.python.org/pypi/setuptools#downloads

python 3.3.2

mysql-connector-python-2.1.3-py3.3-win32

ÏÂÔØµØÖ·£ºhttp://pan.baidu.com/s/1kTRqRht

mysql-connector-python-2.1.4-py3.3-winx64.msi

ÏÂÔØµØÖ·£ºhttp://pan.baidu.com/s/1cDtP1O

¹Ù·½ÏÂÔØµØÖ·£ºhttp://dev.mysql.com/downloads/connector/python/

testlink-1.9.14

ÏÂÔØµØÖ·£ºhttp://pan.baidu.com/s/1pLrcunT

°²×°½Ì³Ì£ºhttp://blog.sina.com.cn/s/blog_13cc013b50102w9am.html

TestLink-API-Python-client-master

ÏÂÔØµØÖ·1£ºhttp://pan.baidu.com/s/1c16H50O

ÏÂÔØµØÖ·2£ºhttps://github.com/lczub/TestLink-API-Python-client#testlink-api-python-client-developers

chardet-2.3.0

ÏÂÔØµØÖ·1£ºhttps://pypi.python.org/pypi/chardet/

ÏÂÔØµØÖ·2£ºhttp://pan.baidu.com/s/1nu7XzjN

2¡¢Ö÷Òª¹¦ÄÜÂß¼­½éÉÜ

3¡¢¿ò¼Ü¹¦Äܼò½é

1¡¢¿ò¼Ü¼¯³ÉÁËTestlink,¿ÉʹÓÃTestlinkÁé»î¶Ô²âÊÔÏîÄ¿£¬²âÊԼƻ®£¬²âÊÔÓÃÀý½øÐйÜÀí

2¡¢¿Éͨ¹ýÅäÖÃÎļþÁé»îÅäÖÃÔËÐÐģʽ£º

Ö§³Ö°´²âÊÔÏîÄ¿ÔËÐУºÒ»´ÎÔËÐе¥¸ö¡¢¶à¸öÖ¸¶¨µÄÏîÄ¿»òÕßÈ«²¿ÏîÄ¿£»

Ö§³Ö°´²âÊԼƻ®ÔËÐУºÒ»´ÎÔËÐе¥¸ö¡¢¶à¸öÖ¸¶¨µÄ²âÊԼƻ®£»

Ö§³Ö°´²âÊÔÌ×¼þÔËÐУºÒ»´ÎÔËÐе¥¸ö¡¢¶à¸öÖ¸¶¨µÄ²âÊÔÌ×¼þ(×¢£ºÖ§³ÖÌ×¼þǶÌ×£¬Ì×¼þ -- testlinkÖеIJâÊÔ¼¯)

Ö§³Ö°´ÓÃÀýÔËÐУºÒ»´ÎÔËÐе¥¸ö\¶à¸öÓÃÀý£¬Õâµã¶ÔÌØ±ð·½±ã¿ª·¢½×¶Îʱ£¬¶Ôµ¥¸ö½Ó¿ÚµÄʵÏÖ´úÂë½øÐе÷ÊÔ

3¡¢Ö§³ÖHTTPS£¬HTTP£¬WebServiceЭÒ飬֧³ÖPOST, GET·½·¨£¬Ö§³ÖJSON£¬·ÇJSONÊý¾Ý¸ñʽµÄÇëÇó£¬Ö§³Ö¶àÖÖÐÎʽµÄÊý¾ÝУÑ飬°üº¬Êý¾Ý¿â¼¶±ðµÄÊý¾ÝУÑé

4¡¢Ö§³ÖÔÚ½çÃæ»¯²Ù×÷£¬ÎÞÐëд´úÂë¾Í¿ÉÒÔʵÏÖÈçϲÙ×÷£º

a) ×Ô¶¨Òå±äÁ¿´æ´¢web·þÎñÆ÷¡¢Êý¾Ý¿â·þÎñÆ÷·µ»ØÇëÇó/²éѯ½á¹û

b) ¸ù¾Ý×Ô¶¨Òåģʽ¶Ôweb·þÎñÆ÷·µ»Ø½á¹û½øÐÐ×Ô¶¯Ð£Ñ飬֧³Ö¶àÖÖģʽµÄУÑ飬°üº¬×Ö·û´®£¬²»°üº¬×Ö·û´®£¬¼üÖµÌáÈ¡£¬°üº¬³ÉÔ±£¬²»°üº¬³ÉÔ±£¬Æ¥Åä/²»Æ¥ÅäÕýÔò±í´ïʽ£¬ÍêȫƥÅäÁбí/Ôª×é/¼¯ºÏ/×Öµä

c) ¸ù¾Ý½çÃæÊäÈëµÄsqlÓï¾ä£¬Ö´ÐÐsql²éѯ/¸üвÙ×÷£¬Õë¶ÔÖ»¶Ô·µ»Øµ¥Ìõ¼Ç¼µÄsql²éѯ£¬»¹Ö§³Ö¶Ô²éѯ½á¹û½øÐÐÌáÈ¡£¬±£´æ

d£©Ö§³Öurl¼°²ÎÊýÌåµÄ¶¯Ì¬²ÎÊý»¯£¬Ö§³ÖÈ«¾Ö¶¯Ì¬²ÎÊý£¬·ÇÈ«¾Ö¶¯Ì¬²ÎÊý£¨Èç´æ´¢Ä³¸ö½Ó¿Ú·µ»Ø½á¹ûµÄ×Ô¶¨Òå±äÁ¿£©

5¡¢Õë¶Ô½Å±¾ÖÐÒѾ­Ö§³ÖµÄ³£¼ûЭÒé¼°³£ÓÃÊý¾Ý¸ñʽ£¬ÇÒ²»Ðè¶Ô½Ó¿ÚÖ´Ðнá¹û½øÐÐÊý¾Ý¿â¼¶±ðµÄÂß¼­Ð£Ñ飬֧³Ö½çÃæÖ±½ÓÔö¼ÓÓÃÀý¶ø²»ÐèÒª¸Ä¶¯½Å±¾´úÂ룬¼´²»»á±àÂëµÄÈËÒ²¿ÉÒÔʹÓñ¾¿ò¼Ü

6¡¢Ö§³Ö²»Í¬±àÂë(utf8,ascii,gb2312)µÄ·µ»Ø½á¹û£¬ÇÒ¿É×ÔÓÉÀ©Õ¹

7¡¢¿É×Ô¶¯Éú³ÉHTML¿ÉÊÓ»¯½Ó¿Ú²âÊÔ±¨¸æ

8¡¢¿É¸ù¾ÝÅäÖÃÔÚ²âÊÔÍê³Éºó£¬×Ô¶¯·¢ËͲâÊÔ±¨¸æÓʼþ£¬Óʼþ·¢ËÍÖ§³ÖSSL¼ÓÃÜ·¢ËͺͷÇSSL¼ÓÃÜ·¢ËÍ£¬Í¬Ê±Ö§³ÖÍù¶à¸öÓÊÏä·¢ËÍÓʼþ

9¡¢Ö§³ÖÎļþ¡¢¿ØÖÆÌ¨µÄÈÕÖ¾´òÓ¡£¬¿É·Ö±ð¿ØÖÆ¿ª¹Ø

10¡¢Ö§³ÖÄ£¿é»¯¿ª·¢

11¡¢Ö§³Ö²âÊÔ»·¾³µÄ¡°Ò»¼ü¡±Çл»£ºpython main.py arg£¬eg python main.py 1

ÆäÖÐ,arg: 1-²âÊÔ»·¾³ 2-Ô¤·¢²¼»·¾³ 3-¼¯³É»·¾³£¬¿É¸ù¾Ýʵ¼ÊÐèÒªÔÚ´úÂë¡¢ÅäÖÃÎļþÖÐ×öÊʵ±µ÷Õû,Ö§³Ö×ÔÓÉÀ©Õ¹ºÍ¸ü¸Ä

12¡¢¿É¼¯³ÉJenkins×Ô¶¯ÔËÐнű¾

²Î¿¼ÎÄÕ£º

¡°ÎªJenkinsÌí¼ÓWindows SlaveÔ¶³ÌÖ´ÐÐpythonÏîÄ¿½Å±¾(http://blog.sina.com.cn/s/blog_13cc013b50102w1yr.html)¡±

¡°ÀûÓÃBuild With Parameters PluginʵÏÖJenkins²ÎÊý»¯¹¹½¨(http://blog.sina.com.cn/s/blog_13cc013b50102wrjj.html)¡±

¡°ÀûÓÃHTML Publisher pluginʵÏÖHTMLÎĵµ±¨¸æÕ¹Ê¾(http://blog.sina.com.cn/s/blog_13cc013b50102wryh.html)¡±

Èç¹ûÐèÒªÖ§³Ö²ÎÊý»¯¹¹½¨£¬ÐèÒªÌæ»»main.py,globalpkg/global_function.py,config/runmodeconfig.pyÎļþ

Windows batch£¬main.py²ÎÊý°´Èçϸñʽд£¬×¢Òâ˳Ðò±ØÐë×ñÊØÈçÏ£º

cd /d C:\Projects\interface_project_for_test
python main.py %run_env% %runmode% %project_mode% %projects% %project% %plans% %testsuites% %case_id_list% %global_case_str%

ÍêÕûÅú´¦Àí²Î¿¼£ºjenkins¼¯³Éhtml±¨¸æÏÔʾºóµÄwindows¹¹½¨Åú´¦ÀíÃüÁî.txt

×¢Ò⣺¼¯³ÉÀïÃæµÄ²ÎÊýĬÈÏÖµÖ»ÄÜΪӢÎĵģ¬ÁíÍ⣬×Ö·û±ØÐë¼ÓË«ÒýºÅ

4¡¢Êý¾Ý¿âµÄ´´½¨

CREATE DATABASE IF NOT EXISTS interface_autotest DEFAULT CHARACTER SET utf8;

5¡¢¿ò¼ÜÄ£¿éÏêϸ½éÉÜ

a)config

dbconfig.conf£º°üº¬²âÊÔÊý¾Ý¿â£¬Ó¦ÓÃÊý¾Ý¿âµÄÅäÖÃÐÅÏ¢

logconfig.conf£º°üº¬ÈÕÖ¾ÅäÖÃÐÅÏ¢£¬¾ßÌåÈçÏ£º

mail.conf£º°üº¬Óʼþ·¢ËÍÅäÖÃÐÅÏ¢£¬ÈçÏ£¬

×¢£º²»Í¬ÀàÐ͵ÄÓÊÏä(·¢¼þÈËÓÊÏä)£¬ÐèÒªÐÞ¸ÄÅäÖÃÎļþΪ¶ÔÓ¦µÄhostºÍ¶Ë¿Ú

smtp.163.com:25

smtp.qq.com:465

report.conf£º°üº¬²âÊÔ±¨¸æÎļþÅäÖÃÐÅÏ¢£¬ÈçÏÂ

runmodeconfig_xxxx.conf£º°üº¬ÔËÐÐģʽÅäÖÃÐÅÏ¢, runmodeconfig_test.confºÍrunmodeconfig_relase.conf·Ö±ðΪ²âÊÔ»·¾³ºÍÔ¤·¢²¼»·¾³µÄÔËÐÐʱÅäÖÃÐÅÏ¢£¬¿É¸ù¾Ýʵ¼ÊÇé¿ö½øÐе÷Õû

runmodeconfig.py£ºÔËÐÐÅäÖÃÀà

b)globalpkg

log.py£ºÊµÏÖÈÕÖ¾´òÓ¡Àà

mydb.py£ºÊµÏÖÊý¾Ý¿âÀ࣬·â×°Êý¾Ý¿âÏà¹Ø²Ù×÷

mytestlink.py£ºÖ÷ÒªÓÃÓÚ»ñÈ¡testlinkÁ¬½ÓʵÀý

othertools.py£ºÊµÏÖÆäËüͨÓù¦ÄÜ£¬±ÈÈçÊý¾Ýת»»£¬ÅúÁ¿´´½¨Ä¿Â¼µÈ

global_var.py£ºÖ÷ÒªÌṩȫ¾Ö±äÁ¿£¬È«¾ÖʵÀýµÈ

global_function.py£ºÖ÷ÒªÌṩȫ¾Öº¯Êý£¬±ÈÈçÌṩÔËÐе¥¸öÓÃÀýµÄº¯Êý run_testcase_by_idµÈ

c)logs¼°testreport

¿É·Ö±ðÓÃÓÚ´æ·ÅÈÕÖ¾Îļþ£¬²âÊÔ±¨¸æ

d)interface

·â×°½Ó¿Ú²âÊÔ·½·¨Àà

˵Ã÷£º¿É¸ù¾ÝÐèÒª£¬Ã¿¸ö½Ó¿Ú¶ÔÓ¦Ò»¸öÄ£¿é£¬¶ÔÓ¦Ò»¸öÀࣻҲ¿ÉÒÔ¶à¸ö½Ó¿Ú¶ÔÓ¦Ò»¸öÄ£¿é£¬¶ÔÓ¦Ò»¸öÀà

ÐèҪעÒâµÄÊÇ£¬ÕâÀïÌí¼ÓµÄÄ£¿é¼°À࣬ÐèÒªÔÚcasestep.pyÖе¼Èë

½Ó¿Úµ¥Ôª²âÊÔÀà´úÂë˵Ã÷

˵Ã÷£ºÐ°汾´úÂëÖУ¬

outputs_list = []ÒѾ­¸Ä³É outputs_dict = {}

´¦Àí·½Ê½Ä¿Ç°Ö§³Ö3ÖÐtest_interface_of_urlencode£¨Õë¶ÔÇëÇóÌåΪurl±àÂ룩£¬test_interface_of_json(Õë¶ÔÇëÇóÌåΪjson¸ñʽ)£¬test_interface_of_xml(Õë¶ÔÇëÇóÌåΪxml¸ñʽ)

ÎÊÌ⣺¼ÙÈçÒª½øÐÐÊý¾Ý¿âºǫ́µÄÂß¼­Ð£ÑéÕ¦°ì£¿

Õë¶ÔºËÐÄÓÃÀýÎÒÃÇ¿ÉÒÔÕâÑù£¬¸´ÖÆÕû¸ötest_xxxΪ1-µ½n·Ý£¬Ð޸ķ½·¨Ãû£¬È»ºóÔÚ´úÂë×îÏ·½ÐÂÔöÊý¾Ý¿âºǫ́УÑéµÄ´úÂ룬ͬʱÈç¹ûÓбØÒª£¬¶ÔÆäËü´úÂë½øÐÐÊʵ±µÄÐ޸ģ¨ÐÂÔö¡¢É¾³ý¡¢Ð޸ĵȣ©£¬È»ºóÓÃÀý²½ÖèÖÐÏÔʾָ¶¨Òªµ÷Óõķ½·¨¼´¿É¡£

»òÕß°ÑÂß¼­Ð´³É´æ´¢¹ý³Ì£¬À©Õ¹´úÂ룬Ôö¼Ó´æ´¢¹ý³Ìµ÷ÓÃ

e)ÆäËüÄ£¿é

ÈçÏ£¬¹ËÃû˼Òå

6¡¢TestlinkÏà¹ØÅäÖÃÓëÓÃÀý¹ÜÀí

ΪÁËÅúÁ¿ÉèÖýӿÚip£¬¶Ë¿Ú(Ö÷ÒªÊÇÕâÁ½¸ö)£¬Ð­ÒéÐÅÏ¢(½öÓÃÓÚչʾ)£¬ÐèÒª¶ÔÏîÄ¿£¬¼Æ»®£¬Ì×¼þµÈ±ØÒªµÄÅäÖã¬ÒÔ¼°¿Í»§¶Ë»·¾³±äÁ¿ÅäÖÃ

a)APIÏà¹ØÅäÖÃ

ÈçÏ£¬µÇ½Testlink£¬½øÈëÓû§¹ÜÀí-²é¿´Óû§£¬ÈçÏÂ

µã»÷Ä¿±êÓû§(ÀýÖÐΪadmin)£¬´ò¿ªÈçϽçÃæ

µã»÷Éú³ÉеÄÃÜÔ¿£¬ÈçÏÂ

»òÕßÊǵã»÷¡°±à¼­Óû§°´Å¥¡±°´Å¥½øÈë½çÃæ

ÔÚÔËÐÐpython½Å±¾¶Ë½øÐл·¾³±äÁ¿µÄÅäÖã¬ÈçÏ£º

1¡¢Ð½¨ÏµÍ³»·¾³±äÁ¿¡°TESTLINK_API_PYTHON_DEVKEY¡±£¬±äÁ¿ÖµÎªÉÏÊöÃØÔ¿

2¡¢Ð½¨¡°TESTLINK_API_PYTHON_SERVER_URL¡±ÏµÍ³»·¾³±äÁ¿£¬±äÁ¿ÖµÎª¡°

http://{host}/testlink/lib/api/xmlrpc/v1/xmlrpc.php¡±,ÆäÖÐhostΪtestlinkµÄ·ÃÎʵØÖ·

²âÊÔÊÇ·ñÉúЧ£º

<code style="font-family:Menlo, Monaco, Consolas,

'Courier New', monospace;white-space:pre-wrap;margin:2px;line-height:18px;font-size:12px;color:rgb(68,68,68);background-color:rgb(249,249,249);border:none;">C:\Users\

laiyu>python
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013,

00:03:43) [MSC v.1600 32
tel)] on win32
Type "help", "copyright", "credits" or "license"

for more information.
>>> import testlink
>>> tls = testlink.TestLinkHelper().connect(testlink.

TestlinkAPIClient)
>>> tls.testLinkVersion()
'1.9.14'
</code>

×¢Ò⣺Èç¹û»¹²»ÐУ¬Ìáʾ404´íÎó£¬Ôò»¹ÐèÒªÅäÖÃtestlinkhelper.py ÖеÄDEFAULT_SERVER_URL£¬½«ÆäÉèÖÃΪhttp://{host}/testlink/lib/api/xmlrpc/v1/xmlrpc.php

python_installation_home\Lib\site-packages\TestLink-API-Python-client-master\build\lib\testlink\testlinkhelper.py

b)ÏîÄ¿Ïà¹ØÅäÖÃ

²âÊÔÏîÄ¿ÅäÖÃ

×¢£º¼Æ»®£¬Ò²´æÔÚÊÇ·ñ¿ªÆôµÄÅäÖã¬ÐèÒª¿ªÆô²Å»áÔËÐС£

Ì×¼þÅäÖÃ

c)ÓÃÀý¹ÜÀí

ÈçÏ£¬ÓÃÀý²ã¼¶£¬Ö§³ÖǶÌ×¹ÜÀí

ÓÃÀý±àдÈçÏ£¬×ó²à²½Ö趯×÷£¬±ØÐë°´Èçϸñʽ±àд

¢Ù¡¡²½Ö趯×÷ºÍÔ¤ÆÚ½á¹ûÌîд¹æ·¶

Õë¶Ôhttp,httpsÇëÇó£¬ÇÒ²½Öè²»ÊÇÖ´Ðе¥¸öÓÃÀý¡¢²»ÊÇÖ´ÐÐsql£¬°´ÈçÏÂÌîд£º

²½Ö趯×÷

json¸ñʽ

{
"ˈ̞":"InterfaceUnittestTestCase",
"º¯Êý":"test_interface_of_urlencode",
"ÇëÇóÍ·"£º{"Content-Type":"application/x-www-form-urlencoded","charset":"utf-8"},
"·½·¨":"post",
"url":"/cmorder/1/4",
"²ÎÊý":{"serial":"[global_serial]","openId":" [global_openId]","fm":1,"mallGoodsId":"26838", "amount":1,"cartIds":"","fetchTime":"", "remark":""}
}

×¢£º

1¡¢Èç¹û²»Ìîд¡°ÀàÃû¼üÖµ¶Ô¡±£¬ÄÇôÀàÃûĬÈÏΪInterfaceUnittestTestCase£¬Èç¹û²»Ìîд¡°º¯Êý¼üÖµ¶Ô¡±£¬ÄÇôº¯ÊýĬÈÏΪtest_interface_of_urlencode

2¡¢¼ü¶ÔÓ¦µÄ²ÎÊýֵΪ¿Õ£¬ÔòÌîдΪ ""£¬¡°¼ü¡±£¬ÓÃË«ÒýºÅ°üº¬£¬¼ü¶ÔÓ¦µÄ¡°Öµ¡±£¬ÓбØÒªµÄ»°Ò²ÊÇË«ÒýºÅ°üº¬£¬Ô¤ÆÚ½á¹ûµÄÌîдҲÊÇÒ»Ñù£¬²»ÔÙ׸Êö

3¡¢Èç¹û¡°²ÎÊý¡±ÖµÎª¿Õ£¬ÔòÌîдΪ "²ÎÊý":""

4¡¢ÓÃÀý²½Öè¶ÔÓ¦µÄtest_xxx·½·¨ÊµÏÖ£¬Òª¾¡Á¿×öµ½½Ó¿Ú²âÊÔÊý¾ÝºÍÒµÎñÂß¼­·ÖÀ룬ÔöÇ¿¸´ÓÃÐÔºÍÓÃÀýµÄ¿Éά»¤ÐÔ¡£

Ô¤ÆÚ½á¹û

json¸ñʽ

json¸ñʽ
{"¼ì²é":"body",
"Æ¥Å乿Ôò":"°üº¬×Ö·û´®",
"Ìõ¼þ":[{"ģʽ":"\"success\":true", "ÏûÏ¢":"´´½¨´¢Öµ¿¨Ö§¸¶¶©µ¥Ê§°Ü£¬success²»ÎªTrue"}],
"Êä³ö":{"success": "\"success\":(.+?),","attach":"attach\":\"(.+?)\""}
}

×¢£º

1¡¢Ô¤ÆÚ½á¹ûҪô°´¹æ·¶Ìîд£¬ÒªÃ´Îª¿Õ£¬É¶¶¼²»Ð´

2¡¢Èç¹û²»Ï붨Òå±äÁ¿´æ´¢·þÎñÆ÷·µ»Ø½á¹û£¬Ôò²»Ìîд¡°Êä³ö¼üÖµ¶Ô¡±

3¡¢×¢£ºÆ¥Å乿ÔòºÍÌõ¼þ£¬ÒªÃ´¶¼Ð´£¬ÒªÃ´¶¼²»Ð´£¬ÈçÏÂ

{"¼ì²é":"body",
"Êä³ö":{"success": "\"success\":(.+?),","attach":"attach\":\"(.+?)\""}
}

ÑùÀý

Õë¶Ôhttp,httpsÇëÇó£¬ÇÒ²½ÖèÖ´Ðе¥¸öÓÃÀý¡¢²»ÊÇÖ´ÐÐsql£¬°´ÈçÏÂÌîд£¬json¸ñʽ

²½Ö趯×÷

{
"²½ÖèÀàÐÍ":"Ö´ÐÐÓÃÀý",
"ÓÃÀýid":106,
"ÓÃÀýÃû³Æ":"test-n-´´½¨´¢Öµ¿¨Ö§¸¶¶©µ¥"
}

Ô¤ÆÚ½á¹û

Ϊ¿Õ£¬²»Ìîд

ÑùÀý

Õë¶Ô²½ÖèÐÐsql£¬°´ÈçÏÂÌîд£º

¸üÐÂ(UPDATE)

²½Ö趯×÷

json¸ñʽ

{
"²½ÖèÀàÐÍ":"Ö´ÐÐsql",
"Êý¾Ý¿â":"db_name",
"¸üÐÂ":"UPDATE mall_shopping_cart SET amount = 0 WHERE customer_id = %s and closed=1",
"²ÎÊý":"([CaseStep.customer_id],)"
}

×¢Ò⣺

1¡¢Èç¹û¡°²ÎÊý¡±ÖµÎª¿Õ£¬ÔòÌîдΪ "²ÎÊý":""

2¡¢¡°Êý¾Ý¿â¡±£¬Òª´ÓÄǸöÊý¾Ý¿â²éÊý¾Ý£¬ÆäÖµÀ´Ô´ÓÚglobal_varÀïÃæµÄÊý¾Ý¿â¶ÔÏóÃû³Æ¡£ÈçÏÂͼ

×¢Ò⣺ÕâÀïÈç¹ûÌí¼ÓÁËÊý¾Ý¿â¶ÔÏó£¬ÐèÒªÔÚmain.py½üĩβ´¦ÖÐÌí¼Ó¹Ø±ÕÊý¾Ý¿âÁ¬½ÓµÄ´úÂë db_name.close()

Ô¤ÆÚ½á¹û

Ϊ¿Õ£¬²»Ìîд

²éѯ(SELECT)

²½Ö趯×÷

json¸ñʽ

{

"²½ÖèÀàÐÍ":"Ö´ÐÐsql",

"Êý¾Ý¿â":"db_name",

"µ¥Ìõ²éѯ":"SELECT id FROM customer WHERE channel_serial=%s",

"²ÎÊý":"(\"[global_openId]\",)"

}

×¢:²ÎÊýֵΪԪ×éµÄ×Ö·û´®ÀàÐͱíʾ (value1,value2,¡­¡­)£¬Èç¹û²ÎÊýΪ¿ÕÔò "²ÎÊý"£º"",Èç¹û²ÎÊýֵΪ×Ö·û´®ÀàÐ͵ģ¬Ôò°´ÕâÑùÌîд£º (\"²ÎÊýÖµ\",)

Ô¤ÆÚ½á¹û

json¸ñʽ

{"¼ì²é":"body",

"Êä³ö":{"customer_id":1}

}

»òÕßÈçÏÂ

{"¼ì²é":"body",

"Êä³ö":{"customer_id":1},

"Æ¥Å乿Ôò":"ÏàµÈ",

"Ìõ¼þ"£º[{"ģʽ"£º"[CaseStep.device_no]=123456", "ÏûÏ¢"£º¡°µÇ¼ʧ°Ü£¬device_no²»Îª123456¡±}]

}

×¢£ºÔ¤ÆÚ½á¹ûҪôΪ¿Õ£¬ÒªÃ´Ñϸñ°´ÕÕÉÏÊöÌîд

ÑùÀý

ÆäËüһЩÑùÀý

·¢ËÍÇëÇó²ÎÊýΪxml¸ñʽ

·¢ËÍÇëÇó²ÎÊýΪjson¸ñʽ

ÈÝ´í´¦Àí

¢Ú¡¡²ÎÊý»¯

1) Õë¶Ôhttps,httpÇëÇó£¬ÇÒ²»ÊÇÖ´ÐÐsql£¬Ò²²»ÊÇÖ´ÐÐÕû¸öÓÃÀýµÄ²½Ö趯×÷¡¢Ô¤ÆÚ½á¹û

Èç¹û²ÎÊýλÓÚ¡°²ÎÊý¡±¡¢¡°ÇëÇóÌ塱£¬ÇÒ¡°²ÎÊý¡±¡¢¡°ÇëÇóÌ塱µÄֵΪ×ֵ䣬°´ÈçϸñʽÌîд

"[var_name]"
{
¡­¡­,
"²ÎÊý":{"key1":"[global_var1]","key2":"[global_var2]"}
}

{
¡­¡­,
"ÇëÇóÍ·":{"DeviceId":"[CaseStep.device_no]", "SerialNo":"[CaseStep.serial_no]",

"Content-Type":"application/json;charset=utf-8","ProductVersion":"

[global_product_version]","ProtocolVersion":"

[global_product_version]","OperatorId":"[OperatorId]", "Token":"[Token]"},
¡­¡­
}

Èç¹û²ÎÊýλÓÚ¡°url¡±»òÕßÔ¤ÆÚ½á¹û¡°Ìõ¼þ¡±ÖеÄ×Öµäkey¶ÔÓ¦µÄÖµ£¬°´ÈçϸñʽÌîд

[ClassName.var_name]¡¢[ClassName.var_name_N]

"Ìõ¼þ"£º[{"ģʽ"£º£û"key": "[CaseStep.branch_id]"},"ÏûÏ¢"£º¡°key´íÎó¡±}]

¡­¡­

}

2) Õë¶ÔÖ´ÐÐsqlµÄ²½Ö趯×÷¡¢Ô¤ÆÚ½á¹û

²ÎÊýλÓÚ²½Ö趯×÷¡¢²½ÖèÔ¤ÆÚ½á¹û£¬°´ÈçϸñʽÌîд

[var_name]»òÕß \"[var_name]\"

{

¡­¡­£¬

"²ÎÊý":"(\"[global_openId]\",)"

¡­¡­

}

{

"¼ì²é":"body",

"Æ¥Å乿Ôò":"ÏàµÈ",

"Ìõ¼þ"£º[{"ģʽ"£º"[CaseStep.device_no]=123456", "ÏûÏ¢"£º¡°µÇ¼ʧ°Ü£¬device_no²»Îª123456¡±}]

}

×¢£ºÈç¹û´ýÌæ»»"¶¯Ì¬±äÁ¿" [var_name]Ϊ×Ö·û´®ÀàÐ͵ıäÁ¿£¬ÐèÒªÔÚÆä×óÓÒÁ½²à¼Ó \" ·ûºÅ£¬ÐÎÈç \"[global_openId]\"

3) ±äÁ¿»®·Ö

È«¾Ö±äÁ¿[global_var]£¬À´×Ôglobalpkg.global_var.pyÖж¨ÒåµÄ£¬var_nameºÍ¶¨ÒåµÄÈ«¾Ö±äÁ¿Ãû³Æ±£³ÖÒ»Ö¼´¿É

·ÇÈ«¾Ö±äÁ¿[ClassName.var_name]£¬¿ÉÄÜÀ´×Ôsql²éѯ½á¹û£¬Ò²¿ÉÄÜÀ´×Ôhttp(s)ÇëÇ󷵻ؽá¹ûÖÐÌáÈ¡µÄ

A)¡°²½Ö趯×÷¡±ÖеķÇÈ«¾Ö±äÁ¿À´Ô´ÓÚij¸ösql²éѯ½á¹û£¬Ôò°´ÈçϸñʽÌîд

[CaseStep.var_name]

ÑùÀý

B)¡°²½Ö趯×÷¡±ÖеķÇÈ«¾Ö±äÁ¿À´Ô´ÓÚij¸öhttp(s)ÇëÇ󷵻ؽá¹û£¬Ôò°´ÈçϸñʽÌîд

[ClassName.var_name]¡¢[ClassName.var_name_N]

ÑùÀý

×¢£º

1¡¢µ±µ÷Óõĺ¯ÊýΪĬÈÏÀàÃû£¬¼´InterfaceUnittestTestCaseÀàÖж¨ÒåµÄ·½·¨Ê±£¬ÕâÀï¡°ClassName.¡±¿ÉÒÔ²»Ð´£¬Èç¹ûÊǵ÷ÓÃÆäËüÐÂÔöÀàÖеķ½·¨Ê±£¬ÐèÒªÏÔʾµÄÌîд

2¡¢µ±ÇÒ½öµ±±äÁ¿ÊÇͨ¹ýÕýÔò±í´ïʽÌáÈ¡µÄʱºò£¬²ÉÓÃ[ClassName.var_name_N]£¬µÄÐÎʽ N´Ó1£¬2£¬3£¬¡­¡­ÒÔ´ËÀàÍÆ

4) ½á¹û¶ÏÑԺͷþÎñÆ÷·µ»ØÄÚÈÝÌáÈ¡

²Î¿¼¡°½á¹û¶ÏÑÔºÍÌáÈ¡·þÎñÆ÷·µ»Ø½á¹û.txt¡±Îĵµ

¢Û¡¡ÓÃÀýÖ´ÐÐÒÀÀµ

È«¾Ö³õʼ»¯ÓÃÀý

×¢£ºÈ«¾Ö³õʼÓÃÀýÔÚrunmodeconfig_ÔËÐл·¾³.confÖнøÐÐÅäÖã¬ÓÅÏÈÓÚÆäËüÓÃÀý±»Ö´ÐÐ

×¢Ò⣺ûÓÐÔòÈ«¾Ö³õʼ»¯ÓÃÀý±£³ÖΪ¿Õ global_cases_str =

µ±°Ñij¸öÓÃÀý×÷(¼ÙÉèΪ¡°ÓÃÀý1¡± )ΪÆäËüÓÃÀýµÄij¸ö²½Ö裬²»ÄÜÂú×ãÐèÇó(±ÈÈçÌṩµÄ½Ó¿ÚÊäÈë²ÎÊýÖµ²»Ò»Ñù)ʱ£¬¿ÉÒÔ¸´Óá°ÓÃÀý1¡±µÄ²½ÖèÐÅÏ¢²¢¶Ô²ÎÊý½øÐÐÊʵ±µÄµ÷Õû

¢Ü¡¡½ûÓÃÓÃÀý

×¢Ò⣺±»½ûÓõÄÓÃÀý²»²ÎÓëÖ´ÐУ¬¼Æ»®£¬ÏîĿҲÊÇÈç´Ë

7¡¢ÔËÐнá¹û

8¡¢Ô´ÂëÏÂÔØ

ÏÂÔØµØÖ·,δע²ágithub£¬Ö±½ÓÍøÅ̹²ÏíÁË:http://pan.baidu.com/s/1o7L6uPO£¬

ÏÂÔØºó½âѹ£¬ÓÃpycharmµ¼ÈëÏîÄ¿¼´¿É£¬±ØÒªÊ±¿ÉÄÜÐèÒªÐÞ¸Ä.idea/workspace.xmlÖÐpython³ÌÐòËùÔÚ·¾¶

9¡¢ËµÃ÷

ʱ¼äÓÐÏÞ£¬¾«Á¦ÓÐÏÞ£¬ÔÝÇҾ͵½Õâ°É£¬ÓÐÐèÒªµÄ¿ÉÒÔ×Ô¼ºÀ©Õ¹¡¢Ð޸Ŀò¼Ü¡£

×¢£ºÄ¿Ç°»¹´æÔÚ¸öbug£¬²âÊÔ±¨¸æÖУ¬ÀàËÆxml¸ñʽ²ÎÊýµÄ²ÎÊýֵûÏÔʾ³öÀ´£¬ÓÐÐËȤµÄ·³ÏÈ×Ô¼º½â¾öÏ¡£

 

 
   
2986 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù