腳本調介面
⑴ unity的js腳本怎麼調用c#的類
在c#中一般會封裝成dll文件對外提供介面調用,unity的js腳本也是這樣的調用方式。
一、創建dll文件並備腔
1。打開vs文件->新建-> 項目->C#->類庫,輸入項目的名稱,創建一個dll項目;
2。引絕衫入 UnityEngine UnityEditor ;這兩個文件放在unity安裝目錄的Unity\Editor\Data\Managed路徑下,
具體添加步驟滾宏:右鍵點擊解決方案->添加引用->瀏覽;
3。如果加入了UnityEngine UnityEditor,在項目中就可以using UnityEngine 和 UnityEditor;如果項目中不需要,也可以省略第二步;
舉例說明:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using UnityEditor;
using System.Collections;
namespace dlltest
{
class Class2 : MonoBehaviour
{
void Start()
{
Debug.Log("this is unity call C# dll test!");
}
}
}
5。F5啟動生成解決方案(debug或者release),把生成的dll放到unity工程的asset下;
6。如果繼承了Monobehaviour的類在dll的子對象中有顯示,這樣就可以綁定到GameObject上了,如果是要引用dll的類,需要using 命名空間,名字一般和項目名稱一致才能調用。
⑵ 在python中如何調用PCSC中的介面
你找個工具將這個介面API,自動轉換成python版本的就可以了。好象是SWIG和Boost。 這兩個以前看過,偶爾還試過幾次。之所以建議你用自動工具,就是因為python對於C++擴展麻煩些,對於C語言介面可以使用ctypes和cython簡單解決。不過C++如果用這些方法有時候被很麻煩。
boost在linux里會經常用到,在windows下也可以使用。SWIG在一般的教程里都會提及到。SIP也是最近出名的。
下面是一些參考資料,搜索來的。
=== 使用工具進行擴展 ===
雖然擴展過程並不復雜,但也可以使用許多已知的工具簡化擴展過程。
(1) SWIG
由David Beazley創建,是一個自動的擴展構造工具。它讀入注釋的C/C++頭文件,為python、tcl、perl等多種腳本語言產生wrap代碼。SWIG可以包裝大量C++特性到Python的擴展模塊中。
評價:swig簡單,可以支持多種腳本文件,但支持的c++特性不完備。
(2) SIP
由Phil Thompson創建,是一個C++模塊構造器,專門為C++的類創造wrapper。它曾經被用於創建PyQt和PyKDE擴展模塊,因此比較出名。
評價:支持C++特徵很齊全,但比較復雜。
(3) bgen
該工具被包含在標准Python發布包中的模塊構建工具集里,由Jack Jansen維護。它用於產生在Macintosh版本可用的Python擴展模塊。
(4) pyfort
由Paul bois創建,用來產生Fortran語言生成的擴展模塊。
(5) cxx
也由Paul Dubois創建,是一個庫,為Python的C++擴展提供了友好的API。Cxx允許將許多python對象(如list和tuple)使用到STL的運算中。庫也提供了C++異常處理到python異常處理的轉化。
(6) WrapPy
由Greg Couch創建,通過讀入C++頭文件來產生擴展模塊。
(7) Boost Python Library
由David Abrahams創建。該庫提供了更多與眾不同的C++ wrap到python擴展中,而只需要對要擴展的C++類寫很少的附加信息。
評價:Boost為C++提供了許多實用的庫,如Regex(正則表達式庫)、Graph(圖組件和演算法)、concept check(檢查泛型編程中的concept)、Thread(可移植的C++多線程庫)、Python(把C++類和函數映射到Python之中)、Pool(內存池管理)等等。
Boost總體來說是實用價值很高,質量很高的庫。並且強調對跨平台的支持。但是Boost中也有很多是實驗性質的東西,在實際的開發中實用需要謹慎。
boost.python支持的c++特性較多,但是比較復雜。
⑶ 建立java與python的介面,讓java能調用python腳本。請問可以用什麼方式
不建議研究jython。比較簡單的思路是把python腳本完全當做一個外部程序,用shell方式調用它。
首先設計好python腳本的介面,把參數用命令行方式傳入,然後輸出列印出來。示例:
$ python func.py arg1 arg2
result
然後在java里就可以用Runtime來執行shell命令,解析輸出字元串然後得到結果。
⑷ Java 寫的應用程序如何調用php寫的應用程序介面怎麼調用
PHP是編程語言和應用程序伺服器的結合。PHP和其它的編程語言類似,使用變數存儲臨時數值,使用操作符處理變數。PHP的真正價值在於它是一個應用程序伺服器。
當談到應用程序伺服器的時候,我是指一個把幾個不同的技術組合為一個完整的套件的程序。這些技術包括:
* 一個強壯的編程語言。
* 存取資料庫中存儲的數據。
* 支持 Internet協議,尤其是電子郵件和HTTP協議。
注意:應用程序伺服器有許多其它的特性,這里只列出了最基本的特性。
由於提供了這些多種不同技術的前端介面,PHP可以使工作變的很容易。
本章的其它部分講述了有關PHP的許多繁雜資料,以及它在應用軟體開發中起到的作用。
1.1 起源
PHP是由Rasums Lerdorf創建的,它開始是一個簡單的用Perl語言編寫的程序,用來記錄Rasums Lerdorf自己在線簡歷的訪問者。以後它又被用C語言重新寫過,范圍擴大到訪問資料庫。在這期間,有許多人向Rasums Lerdorf要此程序的拷貝,以便自己使用。Rasums Lerdorf為此寫了一些介紹此程序的文檔,並發布PHP v1.0。以後,越來越多的人開始使用PHP,並強烈要求增加一些其他的特性,如循環語句和數組變數等。到這時,其他的一些程序員也開始參與PHP源碼的編寫(主要有Zeev Suraki和Andi Gutmans),很明顯,此時的PHP為了以後的發展,必須重新編寫。因此,PHP v3.0就出現了。
1.2 特性
PHP的特性包括:
* 開放源碼 -- 所有的PHP源碼都可以得到。事實上,所有的源碼都包含在隨書附帶的光碟中。
* 沒有運行費用 -- PHP是免費的。
* 基於伺服器端 -- 由於PHP是在Web伺服器端運行的,PHP程序可以很大、很復雜而不會降低客戶端的運行速度。
* 跨平台 -- 雖然本書是以Linux為重點介紹的,但PHP程序可以運行在UNIX,Linux,或者Windows操作系統下。
* 嵌入HTML -- 因為PHP語言可以嵌入到HTML內部,所以PHP很容易學習。
* 簡單的語言 -- 和Java和C++不同,PHP語言堅持以基本語言為基礎,然而它的功能也強大到足以支持任何類型的Web站點。
* 效率高 -- 和其它的解釋性語言相比,PHP系統消耗較少的系統資源。當PHP作為Apache Web伺服器的一部分時,運行代碼不需要調外部二進製程序,伺服器解釋腳本不需要承擔任何額外負擔。
* 分析XML -- 用戶可以組建一個可以讀取XML信息的PHP版本。
* 資料庫模塊 -- 用戶可以使用PHP存取Oracle、Sybase、MS SQL、Adabase D、MySQL、mSQL、PostgreSQL、dBase、FilePro、Unix dbm、Informix/Illustra等類型的資料庫,以及任何支持ODBC標準的資料庫。
* 文件存取--PHP有許多支持文件存取函數。
* 文本處理--PHP有許多函數處理字元串,其中包括模式匹配的能力。
* 復雜的變數--PHP支持標量、數組、關聯數組等變數,這給用戶提供了以支持其它的高級數據結構的堅實基礎。
* 圖象處理--用戶可以使用PHP動態的創建圖象。
* 更多的其它功能!
1.3 PHP需要花費多少錢?
PHP是免費的。所有的源碼、文檔都可以免費的復制、編譯、列印和分發。用戶的任何一個用PHP編寫的程序都屬於用戶自己,可以按照自己的意願進行處理,而不需要付任何版稅。就PHP本身而言,用戶可以無限制地發布自己編寫的程序。
然而,有著很充分的理由,PHP並不是徹底的「公共領域」代碼。如果PHP源碼是完全的公共領域代碼,很可能就有人對PHP的源碼做很小的修改,然後編譯並出售--換一句話說,從它的創作者中脫離出來。但從另一方面說,如果不公布源碼,很難使想使用它的用戶感到放心。
GNU通用公共許可是一種發布免費軟體的方法,它可以避免其他人佔有你的勞動成果。在符合GNU許可的條件下,源碼可以自由地發布,並且任何一個人都可以使用,但是任何來源於此代碼的程序必須以同樣種類的許可方式發布。換句話說,如果用戶從任何GNU許可下的源碼中得到代碼而編寫自己的程序,用戶必須給任何想得到源碼的人共布自己的源碼。
1.4 PHP語言可以嵌入HTML中
當使用者使用經典程序設計語言(如C或Pascal)編程時,所有的代碼必須編譯成一個可執行的文件,然後該可執行文件在運行時,為遠程的Web瀏覽器而產生可顯示的HTML標記。但另一方面,PHP並不需要編譯(至少不編譯成可執行文件)。使用者可以把自己的代碼混合到HTML中。例如,下面的代碼將顯示「Hello,world!」,PHP代碼在下面以黑體字顯示。
<HTML>
<HEAD><TITLE>Test</TITLE></HEAD>
<BODY>
<?PHP $string = 'world!'; ?>
<H1>Hello,<?php echo $string ?></H1>
</BODY>
</HTML>
PHP應用程序伺服器(本書的主要寫作目的)是緊密集成到Apache Web伺服器中的,可以在一個程序內同時調用它們兩個。當Web瀏覽器請求PHP Web頁面的時候,Web伺服器的PHP部分將被調用進行解釋。Web伺服器在請求的Web頁中尋找<?PHP . . . ?>標記,並按要求執行這些PHP代碼。
由PHP代碼生成的輸出將替代<?PHP . . . ?>標記。例如,當PHP代碼運行後,以前的Web頁面將變成如下所示的內容:
<HTML>
<HEAD><TITLE>Test</TITLE></HEAD>
<BODY>
<H1>Hello,world!</H1>
</BODY>
</HTML>
注意,所有的PHP代碼都消失了,僅僅留下了HTML語句。而由PHP代碼生成的HTML語句在上例中以黑體的形式顯示。
1.5 PHP語言是在Web伺服器端運行
當開發互聯網應用程序時,很重要的一點是要清楚應用程序是在哪一端運行的。PHP總是運行在伺服器端。不要嘲笑對這一點的強調。在以後考慮對應用程序某些特性進行規劃時,有的人可能就會在應用程序在哪裡運行的這個問題上搞錯,不要讓自己也成為這些人中的一個。
由於Java applets,ActiveX,或javascript 都是運行在客戶端的Web瀏覽器中的,因此PHP不能直接和它們進行比較。然而可以很容易的將這些語言與PHP相結合在一起,使用PHP可以很方便地生成所需要的任何HTML代碼,當然也就能激活Java applets和ActiveX控制項,還可以動態生成javascript語句。當對互聯網應用程序開發還很陌生的時候,這也許沒有什麼意義,但是在讀完這本書後,這一切就會變得十分清晰的了。
1.6 PHP無處不在
無處不在是常使用的充滿激情的詞語,到1999年7月,將有60萬左右的Web站點使用PHP,1999年夏天有關Linux和開放代碼運動的大發展很可能使PHP團體有突破性發展。可以在站點上看到它的發展趨勢圖表。
此外,PHP郵件列表每天能收到大約80個電子郵件,每個月能收到大約2500個電子郵件,這說明PHP是一個非常活躍的開發團體。使用PHP的商業公司有以下幾個,Mitsubishi Motors、Volvo、Red Hat Software、E*Trade、First USA Bank、the San Francisco Giants和San Diego Zoo等等。
1.7 PHP和C或Java相似嗎?
PHP程序和C程序有略微相似的地方,這是由於PHP來源於C、Perl和Java。一些對C語言來講比較麻煩的方面(如處理字元串的技術),由於採用了和Perl相近的技術,在PHP中就不再是麻煩了。PHP中也不包括Java中的一些面向對象特性。
PHP能很好地處理某些低級的任務,如果代碼需要運行的特別快,可以很方便的使用C為PHP程序編寫模塊。
1.8 PHP比ColdFusion、Active Server Page或Java Server Page更好嗎?
以流行的商議方式,我總是回答,「可以是,也可以不是」。
回答是,是由於它的費用(免費)以及可以通過郵件列表、IRC而在世界范圍內有廣泛的支持網路。同時PHP還在不斷地發展著,如果想要一個PHP現在沒有的特性時,請等待幾個月,就有人很快為PHP編程而加上此種特性。
回答不是,是由於商業軟體有比PHP更多的特性。例如,Allaire's ColdFusion有一個已證實可靠的搜索引擎組件。微軟的Active Server Page技術提供了與Outlook、電子郵件和工作組程序相結合的能力。Java Server Page讓使用者可以使用互聯網上的大量開放源碼模塊。
1.9 總結
對於遍及互聯網上的PHP,本章僅僅簡要提到了它的一些特性,本章也介紹了當設計互聯網應用程序時,PHP為什麼是最好的編程工具之一的原因。
⑸ python怎麼做介面測試工具
之前使用過urllib和urllib2做介面測試,在做的途中,感覺使用urllib2直接進行的get,post 請求並沒有那麼好用。作為測試人員,所需要的測試工具應當以方便為第一要務,測試的耗時只要是真正的無人值守,耗時不是太久的都可以接受。所以,本人又嘗試了一個新的包:requests。
Requests 是用Python語言編寫,基於 urllib,採用 Apache2 Licensed 開源協議的 HTTP 庫。它比 urllib 更加方便,可以節約我們大量的工作,完全滿足 HTTP 測試需求。Requests 的哲學是以 PEP 20 的習語為中心開發的,所以它比 urllib 更加 Pythoner。更重要的一點是它支持 Python3 !推薦一篇文章,上面有該包的詳細說明傳送門,以下只會寫到我用到的部分,所以更多的了解需要自己去搜資料
好了,我們開始吧!!
介面測試中重要的部分:
1.get和post方法
2.用到的參數
3.請求頭
4.cookie
5.日誌輸出
6.如何調試你的程序--藉助fiddler
按照以上的順序,我將一一說明我的搞法,因為編碼能力有限,所以可能看著很low
一、get和post
requests包很好的實現了post和get方法,示例:
1 import requests2 response_get = requests.get(url, data, headers, cookies)3 response_post = requests.post(url, data, headers, cookies)
其他的訪問方式如put,head等等,用法幾乎都是如此,因為沒用到,所以省略
現在一般的介面返回值有頁面和json倆種,按照需求,可以分別使用response.text或者response.content獲取,text獲取的是unicode類型的返回值,而content返回值是str類型,所以我一般使用content來獲取返回值,因為這樣獲取的返回值可以直接使用正則或者in的方式來驗證返回值結果是否正確。
我自己為了實現介面的自動訪問,所以又在requests上面加了一層封裝,就像下面這樣:
三、cookie
一款產品的介面測試中必定會使用登錄狀態,需要使用cookie實現,之前寫過使用cookiejar獲取cookie,requests中獲取cookie的方法更為簡單,不過首先你得知道是哪個介面set了cookie,不過一般是登錄啦。登錄介面訪問之後set了cookie,那好,就去調用登錄介面,然後拿到搞回來的cookie:
# 只需要這樣!!login = requests.post(login_url, data=login_data, headers=login_header)
cookie = login.cookies
這個cookie就是登錄狀態了,拿著隨便用,需要登錄的就直接cookies=cookies
四、日誌輸出
這里注意看第二步中介面數據,有介面描述,也有介面是啥,第一步中又把content做成返回值了,具體拼接方式自己想吧,東西全有了,想寫啥寫啥,還可以加上獲取本地時間的api獲取介面運行時間,log文件該長啥樣是門學問,這里就不獻丑了。
五、借用fiddler調試你的腳本
requests允許使用代理訪問,這有啥用,真有!fiddler是一款截包改包的工具,而且通過擴展可以進行請求間的比對,這樣讓你的程序訪問的請求和真正正確的請求作對比,為啥我的程序訪問出錯?是不是缺了請求頭?參數是不是丟了?cookie是不是少了?很容易看出來。寫法如下:
proxies = { "http": "http://127.0.0.1:8888", "https": "http://127.0.0.1:8888"}
requests.post(url, proxies=proxies)
這樣就可以走代理了,除fiddler以外還有charles和burp suite可以使用,具體看個人喜好吧。
⑹ python http介面測試腳本怎麼寫
根據Testcase的具體業務邏輯用事先准備好的測試數據去調用封裝好的API介面,驗證實際返回結果是否與預期返回結果一致.
測試數據可以以各種形式存放,如Excel數據表:
TestCaseName uname method Expected Result
TestCase1 aaaa GET ....
TestCase2 aaaa POST ....
TestCase3 bbbb GET ....
... ... ... ....
⑺ 鎺ュ彛鍙浠ョ洿鎺ラ氳繃嫻忚堝櫒鍦板潃鏍忚皟鐢錛屽瑰簲鐨刲oadrunner鑴氭湰璇ユ庝箞鍐欙紵
URL閲屽~鍐http://192.168.102.238:8090/fmservice/android/fm.service?commandCode=getBroadCastNumber&userID=27
鐒跺悗褰曞埗涓嬪氨瀹屼簨浜嗭紝涓嶈繃涓嶇煡閬撲綘鐨刄RL 鏄鍚︽湁闇瑕佸弬鏁板寲鐨勫湴鏂癸紝濡傛灉鏈夌殑璇濓紝灝遍渶瑕佸紑鍙戜漢鍛樺府浣犳暣涓澶存枃浠朵簡銆