帶大家一起了解一下什么是HttpUnit,同時(shí)也做了一個(gè)小的測(cè)試案例供大家學(xué)習(xí),一起進(jìn)步~~~????????????
希望大家多多關(guān)注,您的鼓勵(lì)將是我最大的動(dòng)力!
我的主頁:
不許代碼碼上紅
歡迎來學(xué)習(xí)!
一、什么是HttpUnit?
HttpUnit是基于JUnit構(gòu)建的一個(gè)開源的測(cè)試框架,專門針對(duì)Web應(yīng)用的測(cè)試,用于解決使用JUnit框架無法對(duì)遠(yuǎn)程Web內(nèi)容進(jìn)行測(cè)試的問題。
二、工作原理?
HttpUnit通過模擬瀏覽器的行為,包括提交表單(form)、處理頁面框架(frames)、基本的http驗(yàn)證、cookies以及頁面跳轉(zhuǎn)(redirects)處理等,進(jìn)行Web應(yīng)用程序的測(cè)試。通過HttpUnit提供的功能,用戶可以方便地與服務(wù)器端進(jìn)行信息的交互,將返回的網(wǎng)頁內(nèi)容作為普通文本、XML Dom對(duì)象或者是作為鏈接、頁面框架、圖像、表單、表格等的集合進(jìn)行處理,然后使用Junit框架進(jìn)行測(cè)試,還可以導(dǎo)向一個(gè)新的頁面,然后進(jìn)行新的頁面的處理,這個(gè)功能使測(cè)試人員可以處理一組在一個(gè)操作鏈中的頁面!
三、特點(diǎn)?
對(duì)于一般Web測(cè)試工具使用記錄、回放的功能來說,這些測(cè)試工具的缺陷是當(dāng)頁面設(shè)計(jì)被修改后,這些被記錄的行為就不能再重復(fù)利用了,每當(dāng)頁面改變一次,就需要重新錄制一次才能正常重放。
例如:
如果,頁面上有個(gè)元素再開始的設(shè)計(jì)中采用的是單選框,此時(shí)這些工具記錄的就是你的單項(xiàng)選擇動(dòng)作。一旦設(shè)計(jì)發(fā)生了變化,比如說改成了下拉菜單,這時(shí)候,以前錄制的測(cè)試過程就無效了,必須要重新錄制。
而因?yàn)镠ttpUnit關(guān)注的是這些控件的內(nèi)容,而不管頁面的表現(xiàn)形式,所以不管表現(xiàn)形式如何變化,都不影響已確定的測(cè)試的可重用性。
四、JUnit?
環(huán)境:Windows11
工具:IntelliJ IDEA 2021.3、Junit、HttpUnit
語言:java
4.1什么是JUnit?
JUnit是用于編寫和運(yùn)行可重復(fù)的自動(dòng)化測(cè)試的開源測(cè)試框架, 這樣可以保證我們的代碼按預(yù)期工作。JUnit可廣泛用于工業(yè)和作為支架(從命令行)或IDE(如Eclipse)內(nèi)單獨(dú)的Java程序。
JUnit提供:
1、斷言測(cè)試預(yù)期結(jié)果。
2、測(cè)試功能共享通用的測(cè)試數(shù)據(jù)。
3、測(cè)試套件輕松地組織和運(yùn)行測(cè)試。
4、圖形和文本測(cè)試運(yùn)行。
5、JUnit用于測(cè)試:
a、整個(gè)對(duì)象
b、對(duì)象的一部分 - 交互的方法或一些方法
c、幾個(gè)對(duì)象之間的互動(dòng)(交互)
JUnit的特點(diǎn):
1、JUnit是用于編寫和運(yùn)行測(cè)試的開源框架。
2、提供了注釋,以確定測(cè)試方法。
3、提供斷言測(cè)試預(yù)期結(jié)果。
4、提供了測(cè)試運(yùn)行的運(yùn)行測(cè)試。
5、JUnit測(cè)試讓您可以更快地編寫代碼,提高質(zhì)量
6、JUnit是優(yōu)雅簡(jiǎn)潔。它是不那么復(fù)雜以及不需要花費(fèi)太多的時(shí)間。
7、JUnit測(cè)試可以自動(dòng)運(yùn)行,檢查自己的結(jié)果,并提供即時(shí)反饋。沒有必要通過測(cè)試結(jié)果報(bào)告來手動(dòng)梳理。
8、JUnit測(cè)試可以組織成測(cè)試套件包含測(cè)試案例,甚至其他測(cè)試套件。
9、Junit顯示測(cè)試進(jìn)度的,如果測(cè)試是沒有問題條形是綠色的,測(cè)試失敗則會(huì)變成紅色。
4.2環(huán)境配置:安裝Junit
4.3環(huán)境配置:下載HttpUnit
下載地址:http://httpunit.sourceforge.net/
4.4環(huán)境配置:配置HttpUnit
第一步,在idea中創(chuàng)建一個(gè)lib目錄:
第二步,將下載的HttpUnit壓縮包解壓,把lib中的包和jars中的包全部導(dǎo)入到lib中:
五、案例!
5.1創(chuàng)建一個(gè)servlet(主要代碼)
public void saveToSession(HttpServletRequest request){
request.getSession().setAttribute("testAttribute",request.getParameter("testparam"));
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
String username=request.getParameter("username");
response.getWriter().write(username+":HelloWorld!");
}
public boolean authenticate(){
return true;
}
5.2在web.xml中配置這個(gè)servlet
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>com.testTry.servlet.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
5.3啟動(dòng)tomcat服務(wù)器,輸入姓名貝吉特點(diǎn)擊提交
文章來源:http://www.zghlxwxcb.cn/news/detail-778116.html
5.4創(chuàng)建測(cè)試類(主要代碼)
protected void setUp() throws Exception{
super.setUp();
}
protected void tearDown() throws Exception{
super.tearDown();
try{
ServletRunner sr=new ServletRunner();
sr.registerServlet("HelloWorld", HelloWorld.class.getName());
ServletUnitClient sc=sr.newClient();
WebRequest request=new GetMethodWebRequest(
"http://localhost:8080/HelloWorld"
);
request.setParameter("username","Test");
InvocationContext ic=sc.newInvocation(request);
HelloWorld is=(HelloWorld) ic.getServlet();
Assert.assertTrue(is.authenticate());
WebResponse response=sc.getResponse(request);
Assert.assertTrue(response.getText().equals("Test:HelloWorld!"));
}catch(Exception e){
e.printStackTrace();
5.5運(yùn)行結(jié)果,測(cè)試成功
文章來源地址http://www.zghlxwxcb.cn/news/detail-778116.html
到了這里,關(guān)于軟件測(cè)試:HttpUnit簡(jiǎn)單介紹和案例應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!