1. 程式人生 > >Python + unittest模組實現多個介面測試

Python + unittest模組實現多個介面測試

本文知識點

  1. 利用unittest模組組織測試多個用例
  2. 該方法適用於介面迴歸測試

程式碼如下:

import requests
import urllib
import unittest
import sys, io
# 解決console顯示亂碼的編碼問題
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')


class Douban(object):
	"""A class containing interface test method of Douban object"""
	def __init__
(self): self.host = 'movie.douban.com' self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0', 'Referer':'https://movie.douban.com/', } def get_response(self, url, data): resp = requests.post(url=url, data=data, headers=self.headers).content.decode(
'utf-8') return resp def test_search_tags_movie(self): method = 'search_tags' url = 'https://%s/j/%s' % (self.host, method) post_data = { 'type':'movie', 'source':'index' } resp = self.get_response(url=url, data=post_data) print('executing testcase test_search_tags_movie...') return
resp def test_search_tags_hot(self): method = 'search_tags' url = 'https://%s/j/%s' % (self.host, method) post_data = { 'type': 'movie', 'tag': urllib.parse.quote('熱門') } resp = self.get_response(url=url, data=post_data) print('executing testcase test_search_tags_hot...') return resp def test_search_tags_tv(self): method = 'search_tags' url = 'https://%s/j/%s' % (self.host, method) post_data = { 'type':'tv', 'source':'index' } resp = self.get_response(url=url, data=post_data) print('executing testcase test_search_tags_tv...') return resp class Douban_Testcase(unittest.TestCase): """A class for setting up test and collecting test cases""" @classmethod def setUpClass(cls): cls.douban_obj = Douban() def setUp(self): print('...creating test...') def tearDown(self): print('...closing test...') def test_001(self): ret = self.douban_obj.test_search_tags_movie() self.assertTrue(ret) def test_002(self): ret = self.douban_obj.test_search_tags_hot() self.assertTrue(ret) def test_003(self): ret = self.douban_obj.test_search_tags_tv() self.assertTrue(ret) if __name__ == '__main__': unittest.main()

程式碼執行結果
這裡寫圖片描述

相關推薦

Python + unittest模組實現介面測試

本文知識點 利用unittest模組組織測試多個用例 該方法適用於介面迴歸測試 程式碼如下: import requests import urllib import unittest import sys, io # 解決console顯示亂碼的編碼問題

java類支援繼承麼?可以實現介面麼?

java 不支援多繼承,但類可以實現多個介面,間接的實現多繼承,也可以通過內部類。 參考程式碼:MultiExtendsTest // 測試間接的實現多繼承 public class MultiExtendsTest extends D implements A, B, C {

C#學習——簡單聊聊 QI(Query Interface 介面訪問)→一個類實現介面

內容目錄: 1,引言QI 2,例項 3,類與物件與介面之間的關係梳理 1,引言 在COM中,和我們打交道的是介面而不是類,那我們開發的時候要使用這些功能,就只能通過這些介面,通過介面提供的方法,COM是一種C / S架構(伺服器/客戶端),伺服器定義了操作的方法。客戶端則通過

介面BlockingQueue分析以及實現介面時的一點問題

在java併發包中,每種阻塞佇列BlockingQueue都有各自的特性,但是他們都是BlockingQueue的實現,因此分析併發包中的具體實現的BlockingQueue不如先了解BlockingQueue介面各方法的意義,然後具體分析某一個具體BlockingQueue佇列實現,最後推

Python之使用unittest框架和HTMLTestRunner.py檔案實現測試用例執行與測試報告生成

HTMLTestRunner.py檔案下載連結:http://tungwaiyip.info/software/HTMLTestRunner.html 一直想讓使用HTMLTestRunner生成的測試報告可以儲存在指定的檔案目錄下,並以當前執行的時間進行命名,在網上有找

python 實現線程間消息隊列傳遞,一個簡單的列子

一致性 不同 lee mode any sum ase utf () #-*-coding:utf8-*-"""Producer and consumer models: 1. There are many producers and consumers at the

一個類extends 繼承介面實現方法

在java中 一個類中不能繼承多個介面,但是可以通過一個介面繼承多個介面來實現。具體程式碼如下 public interface LanguageBeharvior { public void language(); } public interface SpeakBeharvior {

PYTHON自動化Day6-函式返回值和匿名函式、列表生成式,三元運算子,os模組,sys模組,時間模組,字典排序,資料庫操作,加密(md5)

一.函式多個返回值和匿名函式 #函式返回多個值,用一個變數接收 def say(): num1=1 num2=2 num3=3 return num1,num2,num3 res=say() print(res) #打印出來是元組。 函式如果返回多個值的話,會把返回的

TabLayout+ViewPager+Fragment實現條目載入(介面

要求: 實現如圖所示效果,上方TabLayout,下面ViewPager+Fragment,下拉重新整理,上拉載入更多,多條目載入,顯示title標題,根據images圖片數量進行多條目載入。 介面如下,其中page為頁數,lid為上方標題的id https://feed.mix.s

10分鐘內教你用Python實現檔案自動上傳到百度雲

一、環境說明 Python 3.7  和 win10系統   二、準備工作 首先我們需要安裝一個包,在cmd命令列介面安裝 bypy包。 pip install bypy 然後安裝成功後,在命令列執行命令 bypy info 會彈出一些類似一下的介

Java - 一個類實現介面,有相同簽名的default方法會怎麼辦

Java - 一個類實現的多個介面,有相同簽名的default方法會怎麼辦 public interface A { default void hello() { System.out.println("Hello from A"); }

API介面自動化之3 同一個war包中介面做自動化測試

CREATE TABLE API_TASK( ID INT IDENTITY(1,1), API_NAME VARCHAR(50), API_HOST VARCHAR(100), API_URL VARCHAR(500), API_TYPE VARCHAR(50),

Python通過Manager方式實現無關聯程序共享資料

Python實現多程序間通訊的方式有很多種,例如佇列,管道等。但是這些方式只適用於多個程序都是源於同一個父程序的情況。如果多個程序不是源於同一個父程序,只能用共享記憶體,訊號量等方式,但是這些方式對於複雜的資料結構,例如Queue,dict,list等,使用起來比較麻煩,不夠靈活。Manager是一種較為高階

iOS 實現可變 cell 複雜介面的製作

在日常的開發中,有時會遇到內容塊比較多,且又可變的介面: 多個可變cell複雜介面 這個介面中有些內容塊是固定出現的,比如最上面的商品詳情圖片、商品名稱、價格等。而有些內容塊則是不一定出現的,比如促銷(顯然不是每個商品都有促銷)、已選規格(有的商品沒有規格)、店鋪資訊(有的

javaweb通過介面實現檔案壓縮和下載(包括單檔案下載,檔案批量下載)

  程式設計師在做web等專案的時候,往往都需要新增檔案上傳、下載、刪除的功能,有時是單檔案,有時多檔案批量 操作,而這些功能的程式碼程式設計師可以自己收藏起來當成工具使用,這樣,程式設計師在進行程式設計的時候就會事半功倍 了,那麼接下來的部落格將會介紹各個框架的檔案上傳和下

jmeter-實現業務混合併發壓力測試

      測試伺服器過程中,可能遇見這種測試需求:同一時間多個不同事務向伺服器發出請求。例如對一個伺服器來說,同一時刻可能有使用者正在登陸,有使用者正在瀏覽網頁,有使用者正在寫資料,有使用者正在退出等等,那麼該如何實現以上場景的壓力測試呢?       假設測試需求如下:對

unity實現按下按鈕控制介面

先看看效果圖1使用檢索值來實現首先需要將你想要顯示的面板放入一個數組裡面,這個數組裡面的值都是當你觸發時才會顯示的,事例中我們建立了3個 button進行演示緊接著建立3個image當做我們的面板他們只有顏色不同好了介面都做好了接下來就開始寫程式碼了建立一個C#指令碼 命名為

實現具有相同方法的介面和父類與實現介面有相同方法

一、實現多個具有相同方法的介面 這種情況還是比較少會遇到的,但事實是存在這樣的問題,所以寫下解決的方法: 使用內部類: interface InterA {void f();}interface I

iOS 通過新增執行緒依賴和訊號量結合實現一個複雜介面請求介面時按指定順序執行

前言:本文通過作者的一種思想實現關於iOS中一個介面請求多條資料時,需要按指定順序執行 主要思路:為了實現多個請求介面按指定順序前後執行,本文主要通過新增執行緒依賴關係和GCD的訊號量相結合來實現基本需求貼上Demo地址,感覺可以的麻煩記得點個星星。

工廠模式實現併發請求介面 (同步後臺資料實現離線APP)

背景:客戶現場沒有網路,需要在APP上面錄入資訊並上傳後臺伺服器 解決方案: 使用APP之前,先(下載)同步後臺基本資料,同步完成後,客戶直接使用離線版進行資料錄入即可。 具體實現: 方案一、登入APP後,後臺扔過來一個檔案,客戶端