2012-05-29 14 views
10

मैं आरईएसटी और परीक्षण विभाग के लिए नौसिखिया हूं। मुझे अपनी आरईएसटी सेवाओं का परीक्षण करने के लिए स्वचालन स्क्रिप्ट लिखना होगा। हम नियमित रूप से जेनकींस सीआई नौकरी से इन स्क्रिप्ट को चलाने की योजना बना रहे हैं। मैं इन्हें अजगर में लिखना पसंद करता हूं क्योंकि हमारे पास सेलेनियम आईडीई द्वारा उत्पन्न पायथन में यूआई कार्यक्षमता परीक्षण स्क्रिप्ट्स हैं, लेकिन मैं किसी भी अच्छे समाधान के लिए खुला हूं। मैंने प्रेजेंटप्लिब, सरलजॉन और जुनीट की जांच की, लेकिन वहां उपलब्ध बेहतर समाधान की तलाश की। और साथ ही, मैं एक टेम्पलेट लिखना और प्रत्येक आरईएसटी एपीआई के लिए एक्सएमएल या कुछ से एपीआई जानकारी पढ़कर वास्तविक स्क्रिप्ट उत्पन्न करना पसंद करूंगा। सभी सलाहओं के लिए अग्रिम धन्यवाद।आरईएसटी सेवा परीक्षण स्वचालित करने के लिए सलाह की आवश्यकता

+0

वास्तव में क्या आप परीक्षण करने के लिए कोशिश कर रहे हैं? क्या प्रतिक्रिया है कि आप क्या उम्मीद करेंगे? – Swift

+0

हां, प्रतिक्रिया डेटा सत्यापित करने की आवश्यकता है। सभी सीआरयूडी आराम एपीआई कार्यों का परीक्षण करने के बारे में सोच रहे हैं। उदाहरण के लिए आरईएसटी एपीआई का उपयोग करके, पांच कर्मचारियों को बनाएं, कर्मचारियों को वापस पढ़ें, कुछ अपडेट करें और आखिर में सभी को हटाएं ... मैं इस क्रिया की रेखा में सोच रहा हूं। – user1366786

+0

नीचे ग्रोवी के माध्यम से लिंक है। http://stackoverflow.com/questions/38972221/api-automation-groovy-soapui-all-together-for-most/38974183#38974183 –

उत्तर

18

मैं आमतौर पर अपने आराम से एपीआई का परीक्षण करने के लिए Cucumber का उपयोग करता हूं। निम्नलिखित उदाहरण रूबी में है, लेकिन the rubypy gem या lettuce का उपयोग करके आसानी से पाइथन में अनुवाद किया जा सकता है। RESTful आधार कदम का एक सेट के साथ

प्रारंभ:

When /^I send a GET request for "([^\"]*)"$/ do |path| 
    get path 
end 

When /^I send a POST request to "([^\"]*)" with the following:$/ do |path, body| 
    post path, body 
end 

When /^I send a PUT request to "([^\"]*)" with the following:$/ do |path, body| 
    put path, body 
end 

When /^I send a DELETE request to "([^\"]*)"$/ do |path| 
    delete path 
end 

Then /^the response should be "([^\"]*)"$/ do |status| 
    last_response.status.should == status.to_i 
end 

Then /^the response JSON should be:$/ do |body| 
    JSON.parse(last_response.body).should == JSON.parse(body) 
end 

और अब हम सुविधाओं है कि वास्तव में अनुरोध जारी करके एपीआई का परीक्षण लिख सकते हैं।

Feature: The users endpoints 

    Scenario: Creating a user 
    When I send a POST request to "/users" with the following: 
     """ 
     { "name": "Swift", "status": "awesome" } 
     """ 
    Then the response should be "200" 

    Scenario: Listing users 
    Given I send a POST request to "/users" with the following: 
     """ 
     { "name": "Swift", "status": "awesome" } 
     """ 
    When I send a GET request for "/users" 
    Then the response should be "200" 
    And the response JSON should be: 
     """ 
     [{ "name": "Swift", "status": "awesome" }] 
     """ 

    ... etc ... 

ये आपकी पसंद के सीआई सिस्टम पर चलने में आसान हैं। संदर्भ के लिए इन लिंक देखें:

+2

धन्यवाद स्विफ्ट। मैं आपके उदाहरण का पालन करूंगा। – user1366786

+1

कोई समस्या नहीं, खुशी है कि मैं मदद कर सकता हूं – Swift

1
import openpyxl 
import requests 
import json 
from requests.auth import HTTPBasicAuth 

urlHead='https://IP_ADDRESS_HOST:PORT_NUMBER/' 

rowStartAt=2 
apiColumn=2 
#payloadColumn=3 
responseBodyColumn=12 
statusCodeColumn=13 

headerTypes = {'Content-Type':'application/json', 
       'Accept':'application/json', 
       'Authorization': '23324' 
       } 

wb = openpyxl.load_workbook('Excel_WORKBOOK.xlsx') 

# PROCESS EACH SHEET 
for sheetName in (wb.get_sheet_names()): 
    print ('Sheet Name = ' + sheetName) 

    flagVar = input('Enter N To avoid APIs Sheets') 
    if (flagVar=='N'): 
     print ('Sheet got skipped') 
     continue 


    #get a sheet 
    sheetObj = wb.get_sheet_by_name(sheetName) 

    #for each sheet iterate the API's 
    for i in range(2, sheetObj.max_row+1): 
     #below is API with method type 
     apiFromSheet = (sheetObj.cell(row=i, column=apiColumn).value) 
     if apiFromSheet is None: 
      continue 

     #print (i, apiFromSheet) 
     #Let's split the api 
     apiType = apiFromSheet.split()[0] 
     method = apiFromSheet.split()[1] 

     if (apiType!='GET'): 
      continue 

     #lets process GET API's 
     absPath = urlHead + method 
     print ("REQUESTED TYPE AND PATH = ", apiType, absPath) 
     print('\n') 


     res = requests.get(absPath, auth=HTTPBasicAuth(user, pwd),   verify=False, headers=headerTypes) 

     #LET's write res body into relevant cell 
     sheetObj.cell(row=i, column=responseBodyColumn).value = (res.text) 
     sheetObj.cell(row=i, column=statusCodeColumn).value = (res.status_code) 
     wb.save('Excel_WORKBOOK.xlsx') 



      `#exit(0)` 
संबंधित मुद्दे