連接不上,可能是你的監(jiān)聽(tīng)沒(méi)啟,
創(chuàng)新互聯(lián)是專業(yè)的安化網(wǎng)站建設(shè)公司,安化接單;提供成都做網(wǎng)站、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行安化網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
lsnrctl start
如果想直接進(jìn)數(shù)據(jù)庫(kù)測(cè)試數(shù)據(jù)庫(kù)能否用的話
進(jìn)sql/plus
用oracle 用戶
sqlplus sys as sysdba 密碼 ×××
正常就進(jìn)的去,不正常就報(bào)錯(cuò)
如果想測(cè)試你備份的數(shù)據(jù)是否有用呢,就隨便寫(xiě)條查詢語(yǔ)句
connect user /passwd
然后
select * from *** where ***
有結(jié)果就正確,如果數(shù)據(jù)不可用的話也會(huì)報(bào)錯(cuò),表是你恢復(fù)不成功
1、什么是接口?
2、什么是接口測(cè)試?
3、接口組成的要素有哪些?
4、Python 的 requests 包是干什么的?
5、如何使用 Python 的 requests 包?
6、為什么開(kāi)展接口測(cè)試?
7、為什么要寫(xiě)接口測(cè)試用例?
8、接口測(cè)試用例設(shè)計(jì)主要考慮哪些?
9、接口測(cè)試用例包含哪些內(nèi)容?
10、接口測(cè)試如何設(shè)計(jì)用例?
11、通用接口用例設(shè)計(jì)?
12、接口測(cè)試報(bào)告包含哪些內(nèi)容?
13、測(cè)試指標(biāo)范圍包含哪些?
14、做接口測(cè)試運(yùn)用過(guò)哪些測(cè)試工具?
15、抓包工具用過(guò)哪些?
16、為什么進(jìn)行抓包測(cè)試?
17、TCP/IP 參考模型有哪幾層?
18、常用協(xié)議的端口號(hào)?
19、常見(jiàn)的狀態(tài)碼有哪些?
20、你們公司的接口測(cè)試流程是怎樣的?
21、請(qǐng)?jiān)敿?xì)闡述接口測(cè)試和 UI 測(cè)試在測(cè)試活動(dòng)中是如何協(xié)同測(cè)試的?
22、接口測(cè)試注意事項(xiàng)?
23、接口測(cè)試執(zhí)行中對(duì)比數(shù)據(jù)庫(kù)嗎?
24、請(qǐng)簡(jiǎn)述一下 cookie、session 以及 token 的區(qū)別?
25、談?wù)勀銓?duì) HTTP 協(xié)議的了解?
26、你對(duì) http 請(qǐng)求跟 webservice 請(qǐng)求的了解?
27、在接口測(cè)試中關(guān)聯(lián)是什么含義?如何使用 Postman 設(shè)置關(guān)聯(lián)?
28、接口自動(dòng)化測(cè)試框架一般分為幾層?
29、測(cè)試框架里如何做到數(shù)據(jù)和代碼分離?
1、什么是接口?
接口就是 API,意思是應(yīng)用程序編程接口。
接口本質(zhì)上是程序開(kāi)發(fā)的函數(shù)和方法,提供參數(shù)和返回值。
2、什么是接口測(cè)試?
接口測(cè)試是測(cè)試系統(tǒng)組件間接口的一種測(cè)試,接口測(cè)試主要用于檢測(cè)外部系統(tǒng)和內(nèi)部系統(tǒng)之間以及各個(gè)子系統(tǒng)之間的交互點(diǎn)。測(cè)試的重點(diǎn)是檢查數(shù)據(jù)的交換、傳遞和控制管理的過(guò)程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等。
3、接口組成的要素有哪些?
接口訪問(wèn)的地址、請(qǐng)求的方法、參數(shù)、返回值
(1)接口訪問(wèn)的地址 協(xié)議://IP 地址或域名:端口號(hào)/應(yīng)用名/功能名
(2)請(qǐng)求的方法 get、post 等
(3)參數(shù) 用戶使用接口時(shí),需要向接口提供的數(shù)據(jù)。
(4)返回值 接口給用戶的反饋結(jié)果。
4、Python 的 requests 包是干什么的?
requests 是一個(gè) HTTP 庫(kù),作用是發(fā)送 HTTP 請(qǐng)求,獲得響應(yīng),往往使用在網(wǎng)絡(luò)爬蟲(chóng),接口自動(dòng)化測(cè)試中。
5、如何使用 Python 的 requests 包?
(1)安裝 Python
(2)安裝 requests 模塊
(3)創(chuàng)建.py 文件
(4)導(dǎo)入 requests 模塊
(5)編寫(xiě) Python 代碼
(6)調(diào)用 requests 方法
6、為什么開(kāi)展接口測(cè)試?
接口測(cè)試屬于集成測(cè)試、測(cè)試接入越早,就越能在項(xiàng)目早期發(fā)現(xiàn)問(wèn)題,修復(fù)問(wèn)題成本降低。
接口測(cè)試非??焖?,UI 自動(dòng)化執(zhí)行一個(gè)測(cè)試用例 10s 左右,接口用例執(zhí)行一般毫秒級(jí)。
7、為什么要寫(xiě)接口測(cè)試用例?
(1)理清思路,避免漏測(cè)和重復(fù)測(cè)試。
(2)提高測(cè)試效率、跟進(jìn)測(cè)試進(jìn)度、告訴領(lǐng)導(dǎo)做過(guò)、跟進(jìn)重復(fù)性工作。
(3)更好的記錄問(wèn)題、發(fā)現(xiàn)問(wèn)題、復(fù)現(xiàn)問(wèn)題、同時(shí)這也是接口測(cè)試流程中的一個(gè)產(chǎn)物。
8、接口測(cè)試用例設(shè)計(jì)主要考慮哪些?
(1)功能是否正常。
(2)功能是否按照接口文檔實(shí)現(xiàn)、是否依賴業(yè)務(wù)、異常情況(參數(shù)異常、數(shù)據(jù)異常)、安全測(cè)試等。
9、接口測(cè)試用例包含哪些內(nèi)容?
用例名稱、接口地址、請(qǐng)求方式、前置條件、描述、請(qǐng)求頭部、請(qǐng)求參數(shù)、狀態(tài)碼、預(yù)期返回結(jié)果
10、接口測(cè)試如何設(shè)計(jì)用例?
接口測(cè)試一般考慮入?yún)⑿问降淖兓徒涌诘臉I(yè)務(wù)邏輯。
一般設(shè)計(jì)接口測(cè)試用例采用等價(jià)類、邊界值、場(chǎng)景法居多。
接口測(cè)試用例設(shè)計(jì)思路:
(1)接口業(yè)務(wù)邏輯測(cè)試,接口邏輯測(cè)試是指根據(jù)業(yè)務(wù)邏輯,輸入?yún)?shù),輸出值的描述,對(duì)正常輸入情況下所得輸出值是否正確的測(cè)試,也就是測(cè)試對(duì)外提供的接口服務(wù)是否正常。
(2)模塊接口測(cè)試,模塊接口測(cè)試是為了保證數(shù)據(jù)的安全及程序在異常情況下的邏輯正確性而進(jìn)行的測(cè)試模塊,接口測(cè)試主要包括以下幾個(gè)方面
a.鑒權(quán)碼 token 異常(為空、沒(méi)有、錯(cuò)誤、過(guò)期)
b.其他參數(shù)的異常,必填項(xiàng)的檢查,參數(shù)的長(zhǎng)度、類型、格式異常。常規(guī)的參數(shù)有數(shù)字,字符串,日期;參數(shù)長(zhǎng)度,位數(shù)、身份證、電話的長(zhǎng)度;參數(shù)的類型,數(shù)字精度,字母,中文,帶空格的參數(shù),特殊字符;日期格式,日期年月日,年月日時(shí)分秒,日期格式(包含/-:等)
c.錯(cuò)誤碼異常覆蓋
11、通用接口用例設(shè)計(jì)?
(1)通過(guò)性驗(yàn)證:首先肯定要保證這個(gè)接口功能是好使的,也就是正常的通過(guò)性測(cè)試,按照接口文檔上的參數(shù),正常傳入,是否可以返回正確的結(jié)果。
(2)參數(shù)組合:現(xiàn)在有一個(gè)操作商品的接口,有個(gè)字段 type,傳 1 的時(shí)候代表修改商品,商品 id、商品名稱、價(jià)格有一個(gè)是必傳的,type 傳 2 的時(shí)候是刪除商品,商品 id 是必傳的,這樣就要測(cè)參數(shù)組合了,type 傳 1 的時(shí)候,只傳商品名稱能不能修改成功,id、名稱、價(jià)格都傳的時(shí)候能不能修改成功。
(3)接口安全:繞過(guò)驗(yàn)證,比如說(shuō)購(gòu)買(mǎi)了一個(gè)商品,它的價(jià)格是 300 元,那我在提交訂單時(shí)候,我把這個(gè)商品的價(jià)格改成 3 元,后端有沒(méi)有做驗(yàn)證,更狠點(diǎn),我把錢(qián)改成-3,是不是我的余額還要增加?繞過(guò)身份授權(quán),比如說(shuō)修改商品信息接口,那必須得是賣(mài)家才能修改,那我傳一個(gè)普通用戶,能不能修改成功,我傳一個(gè)其他的賣(mài)家能不能修改成功。參數(shù)是否加密,比如說(shuō)我登陸的接口,用戶名和密碼是不是加密,如果不加密的話,別人攔截到你的請(qǐng)求,就能獲取到你的信息了,加密規(guī)則是否容易破解。密碼安全規(guī)則,密碼的復(fù)雜程度校驗(yàn)。
(4)異常驗(yàn)證:所謂異常驗(yàn)證,也就是我不按照你接口文檔上的要求輸入?yún)?shù),來(lái)驗(yàn)證接口對(duì)異常情況的校驗(yàn)。比如說(shuō)必填的參數(shù)不填,輸入整數(shù)類型的,傳入字符串類型,長(zhǎng)度是 10 的,傳 11,總之就是你說(shuō)怎么來(lái),我就不怎么來(lái),其實(shí)也就這三種,必傳非必傳、參數(shù)類型、入?yún)㈤L(zhǎng)度。
12、接口測(cè)試報(bào)告包含哪些內(nèi)容?
系統(tǒng)接口概況、測(cè)試目的與范圍、測(cè)試工具與資源、測(cè)試記錄及結(jié)果分析(單場(chǎng)景接口、混合場(chǎng)景接口)、測(cè)試結(jié)論
13、測(cè)試指標(biāo)范圍包含哪些?
(1)被測(cè)接口接收請(qǐng)求和返回報(bào)文。
(2)被測(cè)接口返回狀態(tài)、被測(cè)接口對(duì)應(yīng)業(yè)務(wù)邏輯處理、涉及數(shù)據(jù)沉淀的處理、復(fù)雜場(chǎng)景下多個(gè)接口串聯(lián)交互。
14、做接口測(cè)試運(yùn)用過(guò)哪些測(cè)試工具?
(1)Postman
(2)JMeter
(3)SoapUI
(4)Python + requests
(5)Java + HttpClient
(6)Java + OkHttp
15、抓包工具用過(guò)哪些?
(1)Fiddler
(2)Charles
(3)Wireshark
16、為什么進(jìn)行抓包測(cè)試?
有些時(shí)候公司沒(méi)有標(biāo)準(zhǔn)的接口文檔,測(cè)試人員只能抓包來(lái)獲取接口信息。
抓包可以迅速找到請(qǐng)求,通過(guò)抓包可以查看整個(gè)請(qǐng)求過(guò)程,以及響應(yīng)過(guò)程,可以通過(guò)抓包來(lái)分辨前臺(tái)還是后臺(tái) bug。
通過(guò)抓包,可以查看是否有敏感信息泄露,比如用戶密碼和個(gè)人賬號(hào)信息等數(shù)據(jù)。
通過(guò)抓包進(jìn)行測(cè)試,攔截請(qǐng)求,修改請(qǐng)求數(shù)據(jù),查看對(duì)應(yīng)響應(yīng)結(jié)果,抓包本身就是接口測(cè)試的一部分。
17、TCP/IP 參考模型有哪幾層?
應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、網(wǎng)絡(luò)接口層
18、常用協(xié)議的端口號(hào)?
(1)21/tcp FTP 文件傳輸協(xié)議
(2)22/tcp SSH 安全登錄、文件傳送(SCP)和端口重定向
(3)23/tcp Telnet 不安全的文本傳送
(4)25/tcp SMTP Simple Mail Transfer Protocol(E-mail)
(5)69/udp TFTP Trivial File Transfer Protocol(微型文件傳輸協(xié)議)
(6)80/tcp HTTP 超文本傳送協(xié)議(WWW)
(7)110/tcp POP3 Post Office Protocol(E-mail)
(8)443/tcp HTTPS used for securely transferring web pages
(9)3389/tcp 遠(yuǎn)程訪問(wèn) 5631/tcp
(10)5632/udp pcanywhere 端口號(hào)
(11)1433 SqlServer 服務(wù)端口號(hào)
(12)1521 Oracle 服務(wù)端口號(hào)
(13)3306 Mysql 服務(wù)端口號(hào)
(14)8080 Tomcat 默認(rèn)服務(wù)端口號(hào)
19、常見(jiàn)的狀態(tài)碼有哪些?
(1)1XX 信息提示,用于指定客戶端相應(yīng)的某些動(dòng)作。
(2)2XX 成功,用于表示請(qǐng)求成功。
(3)3XX 重定向,用于移動(dòng)的文件并且常被包含在定位頭信息中制定的新的地址信息。
(4)4XX 客戶端錯(cuò)誤,用于指出客戶端的錯(cuò)誤。
(5)5XX 服務(wù)器錯(cuò)誤,用于指出服務(wù)器的錯(cuò)誤。
20、你們公司的接口測(cè)試流程是怎樣的?
(1)從開(kāi)發(fā)中取得接口文檔,了解接口業(yè)務(wù),主要包括接口地址、請(qǐng)求方式、入?yún)ⅰ⒊鰠?、返回格式等信息?/p>
(2)使用 Jmeter 進(jìn)行接口測(cè)試,創(chuàng)建一個(gè)線程組,然后建立一個(gè) http 請(qǐng)求默認(rèn)值,再新建很多 http 請(qǐng)求,一個(gè)請(qǐng)求是一個(gè)用例,輸入相應(yīng)接口路徑、訪問(wèn)方式、參數(shù)等,創(chuàng)建斷言和察看結(jié)果樹(shù)。
(3)最后調(diào)用并執(zhí)行測(cè)試用例,編寫(xiě)測(cè)試報(bào)告。
(4)在做接口測(cè)試的時(shí)候遇到過(guò)很多問(wèn)題,都是自己獨(dú)立解決的,比如返回值亂碼(修改 Jmeter 的配置文件為 UTF-8)。
21、請(qǐng)?jiān)敿?xì)闡述接口測(cè)試和 UI 測(cè)試在測(cè)試活動(dòng)中是如何協(xié)同測(cè)試的?
接口測(cè)試和 UI 測(cè)試這兩塊其實(shí)是有一部分是重疊的,UI 測(cè)試是通過(guò)前端寫(xiě)的界面來(lái)調(diào)用接口,而接口測(cè)試是直接調(diào)接口。所以排除前端的處理的邏輯和調(diào)用的正確性,在理論上接口測(cè)試是可以覆蓋所有的 UI 測(cè)試。但實(shí)際過(guò)程中,如果只是在接口層覆蓋所有的業(yè)務(wù)流,在 UI 上只測(cè)試前端的邏輯,最終的結(jié)果可能會(huì)是忽視很多原有的功能點(diǎn),導(dǎo)致了 UI 測(cè)試的不充分。所以存在多人分工且時(shí)間充分的時(shí)候可以嘗試接口去做業(yè)務(wù)流的全覆蓋,否則不要輕易嘗試。
22、接口測(cè)試注意事項(xiàng)?
(1)改變請(qǐng)求參數(shù),看響應(yīng)結(jié)果是否和接口文檔一致。
(2)查看參數(shù)是否有敏感信息(比如個(gè)人賬戶信息,資金信息)。
(3)查看是否對(duì)關(guān)鍵參數(shù)進(jìn)行加密處理(密碼信息)。
(4)所有列表頁(yè)接口必須考慮排序值。
(5)接口返回的圖片地址能否打開(kāi),圖片尺寸是否符合需求。
(6)接口有翻頁(yè)時(shí),頁(yè)碼與頁(yè)數(shù)的異常值測(cè)試。
(7)當(dāng)輸出參數(shù)有聯(lián)動(dòng)性時(shí),需要校驗(yàn)返回兩參數(shù)的實(shí)際結(jié)果是否都符合需求每個(gè)接口入?yún)⒌哪J(rèn)值、異常類型、非空校驗(yàn)。
(8)入?yún)⒅С侄鄠€(gè)值時(shí),要考慮傳的值的個(gè)數(shù)多的情況下,接口會(huì)不會(huì)報(bào)錯(cuò)。
23、接口測(cè)試執(zhí)行中對(duì)比數(shù)據(jù)庫(kù)嗎?
肯定要對(duì)比,因?yàn)榻涌诜祷刂档臄?shù)據(jù)來(lái)源于數(shù)據(jù)庫(kù),接口對(duì)數(shù)據(jù)的操作還要進(jìn)行深層次的數(shù)據(jù)庫(kù)檢查。
24、請(qǐng)簡(jiǎn)述一下 cookie、session 以及 token 的區(qū)別?
cookie 數(shù)據(jù)存放在客戶的瀏覽器上、session 數(shù)據(jù)放在服務(wù)器上、token 是接口測(cè)試時(shí)鑒權(quán)碼,一般情況下登陸后才可以獲取到 token,然后在每次請(qǐng)求接口時(shí)需要帶上 token 參數(shù)。
cookie 不安全,別人可以分析存在本地的 cookie 并進(jìn)行 cookie 欺騙,考慮到安全應(yīng)當(dāng)使用 session 可以將登錄信息等重要信息存放為 session,其他信息可以保存在 cookie。
25、談?wù)勀銓?duì) HTTP 協(xié)議的了解?
超文本傳輸協(xié)議,端口為 80,是由請(qǐng)求和響應(yīng)兩部分組成的。
請(qǐng)求是由請(qǐng)求頭,請(qǐng)求行,請(qǐng)求正文組成;響應(yīng)是由響應(yīng)頭、響應(yīng)行、響應(yīng)正文組成。
面向安全的話使用 https。
26、你對(duì) http 請(qǐng)求跟 webservice 請(qǐng)求的了解?
(1)http api 接口:是走 http 協(xié)議,通過(guò)路徑來(lái)區(qū)分調(diào)用的方法,請(qǐng)求報(bào)文都是 key-value 形式的,返回報(bào)文一般都是 json 串,有 get 和 post 等方法,這也是最常用的兩種請(qǐng)求方式。可以使用的工具有 postman、RESTClient、jmeter、loadrunner 等。
(2)webservice 接口:是走 soap 協(xié)議通過(guò) http 傳輸,請(qǐng)求報(bào)文和返回報(bào)文都是 xml 格式的,都是通過(guò)工具才能進(jìn)行調(diào)用與測(cè)試??梢允褂玫墓ぞ哂?SoapUI、jmeter、loadrunner 等。
27、在接口測(cè)試中關(guān)聯(lián)是什么含義?如何使用 Postman 設(shè)置關(guān)聯(lián)?
關(guān)聯(lián)就是把上一個(gè)接口返回值的部分截取出來(lái),作為下一個(gè)接口的參數(shù),能讓接口串聯(lián)運(yùn)行。
在 Postman 中設(shè)置關(guān)聯(lián)的步驟如下:
(1)通過(guò)正則表達(dá)式提取的方式或 json 取值的方式把下一個(gè)接口需要的信息從上一個(gè)接口截取出來(lái)。
(2)使用設(shè)置全局變量的代碼把取出來(lái)的值保存到全局變量里。
(3)在下一個(gè)接口中,使用(全局變量)代替要替換的靜態(tài)值。
28、接口自動(dòng)化測(cè)試框架一般分為幾層?
自動(dòng)化測(cè)試框架一般分為 5 層(配置層,腳本層,數(shù)據(jù)層,測(cè)試報(bào)告層,驅(qū)動(dòng)層)
接口項(xiàng)目工程規(guī)劃大致可分為幾類,首先是測(cè)試結(jié)果類,比如說(shuō)叫 test_rusult,里面存放一些比如日志文件,測(cè)試報(bào)告。然后是測(cè)試用例 testcase,里面分模塊存放測(cè)試用例。接下來(lái)是公共方法類,比如說(shuō)叫 public,或者是 tools,里面存放一些,讀取 excel 數(shù)據(jù)的方法,發(fā)送 http 請(qǐng)求的方法,收集 log 日志的方法,發(fā)送郵件,操作數(shù)據(jù)庫(kù)等方法。還有就是配置文件類,比如說(shuō)叫 config,里面存放一些指定運(yùn)行部分用例的配置文件,連接數(shù)據(jù)庫(kù)的配置文件。最后是寫(xiě)一個(gè) run 方法,運(yùn)行所有的用例。
29、測(cè)試框架里如何做到數(shù)據(jù)和代碼分離?
第一種:寫(xiě)在 excel 表格里,像這種主要是讀取 excel 數(shù)據(jù)有點(diǎn)麻煩,常用的用來(lái)讀取 excel 的第三方庫(kù)有 openpyxl,xlrd 等。當(dāng)然讀取 excel 數(shù)據(jù)最好用的還是用來(lái)做數(shù)據(jù)分析的 pandas 模塊,不用寫(xiě)那么多 for 循環(huán)。
第二種:數(shù)據(jù)存放到 yaml 文件里,一個(gè)模塊或者是一個(gè)功能寫(xiě)一個(gè) yaml 文件,最后寫(xiě)個(gè)讀取 yaml 文件的公共方法就行了。yaml 格式的文件比較簡(jiǎn)單。
第三種:存放在數(shù)據(jù)庫(kù)里面。
第四種:數(shù)據(jù)存放在 json 文件里。
1.創(chuàng)建Product Family
Product Family用于管理幾個(gè)功能相近的Product(也可以立即為模塊),統(tǒng)一管理客戶化的Webservice接口
begin
-- Call the procedure
ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation = 'os_xxx',
x_pseudo_product_flag = 'N',
x_product_family_flag = 'Y',
x_application_short_name = NULL,
x_product_name = 'Oracle Xxx Suite',
x_product_family_abbreviation = NULL,
x_product_family_name = NULL,
x_aru_update_date = to_char(SYSDATE,'yyyy-mm-dd
hh24:mi:ss'),
x_currdate = to_char(SYSDATE,'yyyy-mm-dd
hh24:mi:ss'),
x_last_updated_by = -1,
x_created_by = -1);
COMMIT;
end;
2.注冊(cè)Product,即注冊(cè)Xxx University(cux)應(yīng)用到產(chǎn)品家族中
begin
ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation = 'cux',
x_pseudo_product_flag = 'N',
x_product_family_flag = 'N',
x_application_short_name = 'CUX',
x_product_name = 'Xxx University',
x_product_family_abbreviation = NULL,
x_product_family_name = NULL,
x_aru_update_date = to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),
x_currdate = to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),
x_last_updated_by = -1,
x_created_by = -1);
COMMIT;
end;
3.關(guān)聯(lián)Xxx University應(yīng)用到產(chǎn)品家族Oracle Xxx Suite下
begin
-- Call the procedure
ad_pa_insert_package.insert_ad_pm_prod_family_map(x_product_abbreviation = 'cux',
x_product_family_abbreviation = 'os_xxx',
x_aru_update_date = TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),
x_currdate = TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),
x_last_updated_by = -1,
x_created_by = -1);
COMMIT;
end;
4.增加一個(gè)BUSINESS_ENTITY的lookup code(應(yīng)用開(kāi)發(fā)員職責(zé)-應(yīng)用產(chǎn)品 - 代碼-Oracle Application Object),這個(gè)Lookup會(huì)用在下
一步的API中的@rep:category BUSINESS_ENTITY
這里增加的code為ORACLESEEKER
5.編寫(xiě)PL/SQL API Specification
CREATE OR REPLACE PACKAGE CUX_SUPPLIER_PKG AS
/* $Header: $ */
/*#
* This package using maintain the supplier information
* @rep:scope public
* @reproduct CUX
* @rep:lifecycle active
* @rep:displayname Supplier Approve result
* @rep:compatibility S
* @rep:category BUSINESS_ENTITY ORACLESEEKER
*/
/*#
* insert approve result
* @param apply_id apply id
* @param node_id node id
* @param node_name node name
* @param approver_id approver id
* @param approver_name approver name
* @param approve_result approve result
* @param approve_opinion approve opinion
* @param approve_date approve date
* @return a varchar
* @rep:scope public
* @rep:lifecycle active
* @rep:displayname insert supplier approve result Webservice
*/
FUNCTION f_insert_approve_result(apply_id IN NUMBER,
node_id IN NUMBER,
node_name IN VARCHAR2,
approver_id IN NUMBER,
approver_name IN VARCHAR2,
approve_result IN NUMBER,
approve_opinion IN VARCHAR2,
approve_date IN DATE) RETURN VARCHAR2;
END CUX_SUPPLIER_PKG;
需要注意Package中的注釋并不是隨便填寫(xiě)的,每一個(gè)注釋都會(huì)對(duì)應(yīng)到Oracle Integration Repositoy接口的說(shuō)明上去,對(duì)于要注冊(cè)成
Webservice的PL/SQL API必須按照要求來(lái)填寫(xiě)。
注釋標(biāo)簽具體的含義需要參考《Oracle E-Business Suite Integrated SOA Gateway Developer's Guide》
6.驗(yàn)證PLSQL接口文件,并生成ildt文件
將編寫(xiě)好的PLSQL聲明定義保存為.pls文件(PAUL_ITEM_PKG.pls),并將其上傳到服務(wù)器應(yīng)用$CUX_TOP/patch/115/sql目錄下,然后執(zhí)行下
邊的命令生成ildt文件
/usr/bin/perl $FND_TOP/bin/irep_parser.pl -g -v -username=sysadmin
cuxatch/115/sql:CUX_SUPPLIER_PKG.pls:12.0=CUX_SUPPLIER_PKG.pls
7.將iLDT文件上傳到Oracle Integration Repositoy
FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/wfirep.lct CUX_SUPPLIER_PKG_pls.ildt
8.在對(duì)應(yīng)的Product Family和Product下就能看到你的接口
9.在Web服務(wù)調(diào)用的時(shí)候,需要有一個(gè)應(yīng)用數(shù)據(jù)庫(kù)用戶來(lái)連接EBS數(shù)據(jù)庫(kù),因此需要?jiǎng)?chuàng)建一個(gè)具備一定權(quán)限的用戶,而為了簡(jiǎn)化設(shè)置的麻煩
,Oracle提供了一個(gè)內(nèi)建的用戶 ASADMIN ,只要啟用它并重置密碼就可以了。
以sysadmin登錄Oracle EBS,切換到 User Management 職責(zé),進(jìn)入U(xiǎn)sers頁(yè)面,查找出asadmin用戶,通過(guò)修改密碼的方式激活asadmin,
并確保此用戶擁有Apps Schema Connect Role職責(zé)。
由于asadmin的密碼已經(jīng)被重置,因此中間服務(wù)器的文件配置$INST_TOP/ora/10.1.3/j2ee/oafm/config/system-jazn-data.xml 中對(duì)應(yīng)的
密碼也需要修改,由于配置中的密碼已被加密,我們無(wú)法提供加密后的密碼,使用過(guò)OC4J的同事應(yīng)該都知道,Oracle提供了一種重置這里
密碼的方便方法,就是采用明文密碼,在密碼前添加一個(gè)警號(hào)(!),然后重啟應(yīng)用服務(wù)器后自動(dòng)會(huì)重新加密。打開(kāi)system-jazn-data.xml
文件后, 找到
user
nameASADMIN/name
display-nameDefault Apps SOA User/display-name
descriptionUsed by SOAProvider for DB connection/description
credentials{903}qMgAeO1AjQjwOJ6rIB41Sx049uG0xzhs/credentials
/user
只要將credentials的值更改為自己的密碼,如我的密碼設(shè)置為11111,就設(shè)置為 credentials!11111/credentials。修改完成后重啟
oamf,簡(jiǎn)單的方法就是重啟Oracle EBS應(yīng)用服務(wù)。
附重啟命令:
cd $INST_TOP/admin/scripts
01、關(guān)閉應(yīng)用 sh adstpall.sh apps/apps
02、重啟應(yīng)用 sh adstrtal.sh apps/apps
03、關(guān)閉DB
04、重啟DB
05、啟動(dòng)并發(fā)管理器 adcmctl.sh start apps/apps
10.為集成接口創(chuàng)建授權(quán)
發(fā)布到Oracle Integration Repositoy中的Web服務(wù)能夠被訪問(wèn)必須有相應(yīng)的權(quán)限才可以,這也是受到AOL安全模型限制的一個(gè)體現(xiàn)。
登錄EBS后切換到Integrated SOA Gateway職責(zé),在 Integration Repositoy 中找出已經(jīng)上傳好的客戶化集成接口,選擇接口過(guò)程和方法
后點(diǎn)擊Create Grant 按鈕
選擇授權(quán)類型:All Users、Group of Users 和 Specific USer,下面設(shè)置為最后一種方式
11.完成以上工作后,點(diǎn)擊Generate WSDL按鈕來(lái)生成集成接口對(duì)應(yīng)的Web服務(wù)WSDL信息
成功完成后可以看到如下Web服務(wù)的狀態(tài)為:Generated
點(diǎn)擊 Deploy 按鈕來(lái)發(fā)布Web服務(wù)到中間服務(wù)器中,發(fā)布后Web服務(wù)的狀態(tài)為: Deployed
-----------------------------------------------
12.如果在測(cè)試中報(bào)java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: For input
string: ""
執(zhí)行以下操作:
cd $ORA_CONFIG_HOME/10.1.3/j2ee/forms/config/oc4j.properties
注釋代理服務(wù)
#http.proxyHost=
#http.proxyPort=
重啟服務(wù)
13.如果填寫(xiě)信息提交后會(huì)報(bào)出 wsse:FailedAuthentication 這樣的錯(cuò)誤信息,這是由于提交的Soap消息中并沒(méi)有包括Oracle
Integration Repository要求的AOL安全認(rèn)證,即沒(méi)有Oracle EBS系統(tǒng)要求的用戶、職責(zé)、安全組和語(yǔ)言信息,也就是沒(méi)有進(jìn)行Oracle
EBS的環(huán)境初始化
wsdl文件路徑/ebsr12/test/inst/apps/TEST_scmdev/soa/PLSQL/4343
此問(wèn)題可以通過(guò)修改wsdl文件來(lái)解決
01刪除CUX_SUPPLIER_PKG_soap.wsdl中
element name="SOAHeader"
complexType
sequence
element name="Responsibility" minOccurs="0" type="string"/
element name="RespApplication" minOccurs="0" type="string"/
element name="SecurityGroup" minOccurs="0" type="string"/
element name="NLSLanguage" minOccurs="0" type="string"/
element name="Org_Id" minOccurs="0" type="string"/
/sequence
/complexType
/element
02刪除CUX_SUPPLIER_PKG_soap_http.wsdl中
element name="SOAHeader"
complexType
sequence
element name="Responsibility" minOccurs="0" type="string"/
element name="RespApplication" minOccurs="0" type="string"/
element name="SecurityGroup" minOccurs="0" type="string"/
element name="NLSLanguage" minOccurs="0" type="string"/
element name="Org_Id" minOccurs="0" type="string"/
/sequence
/complexType
/element
修改后點(diǎn)擊invoke,如出現(xiàn)“處理服務(wù)時(shí)出錯(cuò)”,進(jìn)行如下處理
/ebsr12/test/inst/apps/TEST_scmdev/soa/PLSQL/4343/F_INSERT_APPROVE_RESULT.wsdl
查看這個(gè)文件的內(nèi)容
jcaperation
PackageName=”O(jiān)RACLESEEKER_DEPT_PKG”
ProcedureName=”ADD_DEPARTMENT”
IRepInternalName=”P(pán)LSQL:ORACLESEEKER_DEPT_PKG:ADD_DEPARTMENT”
IRepOverloadSeq=”1〃
InteractionSpec=”oracle.tip.adapter.apps.AppsStoredProcedureInteractionSpec”
/jcaperation
完整的屏蔽代碼,還是屏蔽代碼的一部分,如果是完整的屏蔽代碼,那么用not in就行。
數(shù)字代碼,不應(yīng)該只是屏蔽一部分吧。
當(dāng)前文章:oracle怎么測(cè)試接口 oracle接口怎么做
標(biāo)題URL:http://jinyejixie.com/article12/hpsodc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)、域名注冊(cè)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)公司、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)