在服務端自動化測試過程中,Form 請求代表請求過程中,請求體爲表單類型。其特點爲:數據量不大、數據層級不深的情況、使用鍵值對傳遞。Form 請求頭中的content-type通常對應爲application/x-www-form-urlencoded。碰到這種類型的接口,使用 Java 的 REST Assured 和 Python 的 Requests 均可解決。
實戰練習
Python 版本
在 Python 版本中,可以使用 data 參數傳輸表單數據,data 參數以字典的形式,字典是以鍵值對的形式出現。
class TestFormData:
def test_data(self):
data = {
"school":"hogwarts"
}
r = requests.post("https://httpbin.ceshiren.com/post",
data=data)
print(r.json())
運行結果:
{
"args": {},
"data": "",
"files": {},
"form": {
"school": "hogwarts"
},
...省略...
"json": null,
"origin": "113.89.10.187",
"url": "https://httpbin.ceshiren.com/post"
}
Java 版本
import static io.restassured.RestAssured.*;
public class Requests {
public static void main(String[] args) {
given().formParams("school", "hogwarts").when().post("https://httpbin.ceshiren.com/post").
then().log().all();
}
}
使用抓包工具查看過程數據(參考代理配置章節),其中多了 Form 格式展示,以 name 和 value 的形式顯示,具體結果如下圖所示: