Jsoup做接口测试

最早用Jsoup是有一个小的爬虫应用要写,发现Jsoup较HttpClient轻便多了,API也方便易懂,上手很快,对于response的 Document解析的选择器用的是cssSelector(Jquery)选择器,觉得还不错,后来因为其它原因,没有深入的研究,最近看到一位大神用 这个,我也就再学习了一下,顺便把这个用Jsoup做接口测试的相关知识点发出来给大家参考下!

一. 接口测试的相关知识点准备:

  1.firefox, firebug安装

  2.如何查看请求方式及链接,如下图

  

  我们可以看出,请求的方式是GET, 链接是www.baidu.com

二. Jsoup示例

  1.所使用到的jar包:jsoup-*.jar

  2.示例:(不要使用百度首页来做试验!!!使用百度首页做试验出不来结果的人,不要来问我为什么!!!)  


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

import java.io.IOException;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

public class Test {

    

    public void testJsop(){

        try {

            Document doc = Jsoup.connect("http://www.cnblogs.com/zhangfei/p/4283930.html").get();

            System.out.println(doc);

        } catch (IOException e) {          

            e.printStackTrace();

        }

    }

    

    public static void main(String[] args) {

        Test t = new Test();

        t.testJsop();

    }

    

}

  输出结果就是当前页面的Document对象,然后再解析这个页面对象就可以了。

三. 参数的处理

  1.Get请求中的参数

  

  对于这种参数,一般有两种写法:

  第一种:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

public class Test {

    

    public void testJsop(){

        try {

            Document doc = Jsoup.connect("http://www.cnblogs.com/zhangfei/p/?page=3").get();

            System.out.println(doc);

        } catch (IOException e) {          

            e.printStackTrace();

        }

    }

    

    public static void main(String[] args) {

        Test t = new Test();

        t.testJsop();

    }

    

}

  第二种:  


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

public class Test {

    

    public void testJsop(){

        try {

            Connection conn = Jsoup.connect("http://www.cnblogs.com/zhangfei/p/");

            conn.data("page","3");

            Document doc = conn.get();         

            System.out.println(doc);

        } catch (IOException e) {          

            e.printStackTrace();

        }

    }

    

    public static void main(String[] args) {

        Test t = new Test();

        t.testJsop();

    }

    

}

  2.post请求中的参数

   post请求的参数,一般以表单提交居多,我们来看看如何确定参数:

  

  上图中,左边红框框是key, 右边红框框是value,一般情况下,在测试系统中,输入用户名与密码就行了,比如:  


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

public class Test {

    

    public void testJsop(){

        try {

            Connection conn = Jsoup.connect("https://passport.jd.com/new/login.aspx");

            conn.data("loginname","test1");

            conn.data("loginpwd","test1");

            Document doc = conn.post();        

            System.out.println(doc);

        } catch (IOException e) {          

            e.printStackTrace();

        }

    }

    

    public static void main(String[] args) {

        Test t = new Test();

        t.testJsop();

    }

    

}

四.响应超时请求处理  


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

public class Test {

    

    public void testJsop(){

        try {

            Connection conn = Jsoup.connect("https://passport.jd.com/new/login.aspx");

            conn.data("loginname","test1");

            conn.data("loginpwd","test1");

            conn.timeout(30000);

            Document doc = conn.post();        

            System.out.println(doc);

        } catch (IOException e) {          

            e.printStackTrace();

        }

    }

    

    public static void main(String[] args) {

        Test t = new Test();

        t.testJsop();

    }

    

}

五.cookies的管理

  在我们登录后,保存此次登录的cookies,这样,后续的操作才可以继续进行,Jsoup提供了很简便的方式来保存cookies  


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

public class Test {

    

    public void testJsop(){

        try {

            Connection conn = Jsoup.connect("https://passport.jd.com/new/login.aspx");

            conn.data("loginname","test1");

            conn.data("loginpwd","test1");

            conn.timeout(30000);           

            conn.method(Method.POST);

            Response response = conn.execute();

            Map<String, String> cookies = response.cookies();

            Document doc = Jsoup.connect("http://order.jd.com/center/list.action")

                .cookies(cookies)

                .timeout(30000)

                .get();

        } catch (IOException e) {          

            e.printStackTrace();

        }

    }

    

    public static void main(String[] args) {

        Test t = new Test();

        t.testJsop();

    }

    

}

上面的示例中,可以看出,要取得cookies,必须要有个Response的对象,所以,要用execute方法,如果直接用post方面,返回的则是Document对象,但在用execute方法时,要事先调用一下method方法设定好请求方式即可。

原文:https://www.cnblogs.com/zhangfei/p/4359408.html

原文地址:https://www.cnblogs.com/peachh/p/9746443.html

时间: 2024-10-02 19:33:27

Jsoup做接口测试的相关文章

接口测试和运用jmeter做接口测试

1.接口测试简介 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等.不同语言之间用json进行交互 测试接口返回的是jeson串,例如: { "name":'wjx' "age":1 }  字符两边用双引号进行连接,中间用冒号进行隔开 接口文档的作用,主要概述:1.功能描述   2.请求地址:url地址,分为域名和路径   3

phoenixframe自动化平台使用多批次数据做接口测试的方法

package org.phoenix.cases.webservice; import java.io.IOException; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; import org.phoenix.action.WebElementActionPro

使用robotframework做接口测试之一——准备工作

最近发现做接口测试的朋友越来越多了,打算写一个系列的rf+requests做接口测试(主要是Http接口)的文档,可以帮助新入门的同学对接口测试有个大概的了解,同时也是敦促自己做总结的一种手段.希望经验丰富的大神路过时,如发现我文档中的不足,提出中肯的批评及更好的解决思路.以期共同进步. 一.环境准备 1)默认已经安装robotframework2)默认已经安装requests库3)默认已经安装并成功导入RequestsLibrary4)会用抓包工具,fiddler或Charles都可 用这个库

JMeter学习笔记15-如何用JMeter做接口测试

本文介绍JMeter如何做web service测试,一般来说web服务,一般指的是HTTP请求相关的内容.这里就介绍一下如何利用JMeter做基于HTTP的web接口测试.接口也叫API(Application Programming Interface),很多我们使用的各种APP,上面的内容显示大部分都调用后台web服务器的接口,有些是网站的接口,有些是solr的接口. 什么是接口? 我们这里举例一个生活中场景来帮助你理解接口.加入你去餐馆点餐,看了菜单,告诉服务员,你要一个宫爆鸡丁,过一会

什么是接口测试?为什么要做接口测试?

1. 什么是接口测试?为什么要做接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等. 由于如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,所以就要做接口测试.同时,接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求.接口持续集成是为什么能低

接口测试-为什么做接口测试

今天开始分享一下接口测试的相关技能,首先对接口这个概念进行一下梳理,英文简称API(Application Programming Interface,应用程序编程接口) 什么是接口? 说起接口在不同领域有不同的解释,在计算机编程中接口也分为很多,这里我们定义的接口是指应用程序编程接口,也就是所说的API,偏官方的解释为一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节.而对于测试人员来说就是已开发的功能通过非GUI

为什么要做接口测试?

一.多想想为什么吧 平时工作中,你是不是经常遇到这种情况呢?领导说,xxx,你准备做下接口测试吧,接口测试报告记得给我一份.很多人听到之后,就屁颠屁颠去做接口测试.有时我会想,他们真的知道:为什么要做接口测试么?坦白说,其实一开始我也不清楚为什么要做接口测试... 二.什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是检查数据的交换,传递以及系统间的相互依赖关系等. 一般来说,测试接口是指测试接口的功能.性能

极光小课堂|手把手教你做接口测试

接口测试是项目测试过程中非常重要的一环,测试的对象是接口,所以提早介入测试,对代码逻辑进行全面验证,就会更早的发现程序的问题.同时,接口测试比UI测试效率更高,并且更容易验证极端和异常的情况. 那么什么是接口测试,以及如何在实际环境中进行接口测试呢?本文手把手教会你接口测试的逻辑和方法. 1.接口测试概念 1.1接口的定义 应用程序编程接口(API Application Programming Interface)是在不同进程,程序或系统之间的通信的代码.API通常基于客户机/服务器模型.有交

集成unittest做接口测试

unittest接口测试 上篇已经讲了接口测试的做法,利用的是postman工具,工具始终是工具,它有一定的局限性,比如测试数据的存放,断言的方法以及上下接口关联使用灵活性.python对http接口封装了一个requests库可以调用接口,结合unittest单元测试框架可以完美测试. 简单实例 import unittest import requests class GetEventListTest(unittest.TestCase): """查询发布会接口测试&qu