精华内容
下载资源
问答
  • Web接口自动化测试

    2018-01-09 18:43:33
    Web接口自动化测试接口的理解接口就是API,可以理解为用来供外部调用(访问)的东东(模块)。比如:手机上可以查看实时天气(大概原理就是app应用调用了气象平台提供天气查询接口);12306网站的实名制认证(需要...

    Web接口自动化测试

    接口的理解

    接口就是API,可以理解为用来供外部调用(访问)的东东(模块)。

    比如:

    手机上可以查看实时天气(大概原理就是app应用调用了气象平台提供天气查询接口);12306网站的实名制认证(需要调用政府公安局相关信息系统提供的身份认证接口);

    微信上绑定银行卡(需要调用银行系统提供的相关业务接口)。

     

    JSON介绍

    JSON是一种数据格式,任何对象都可以使用JSON数据来表示。

     可以表示某人,比如:

    {
    "name":"BillGates",
    "street":"FifthAvenue New York 666",
    "age":56,
    "phone":"5551234567"
    }

     可以表示网站,比如:

    {"sites":[{"name":"菜鸟教程" , "url":"www.runoob.com"},{"name":"google" , "url":"www.google.com"},{"name":"微博" , "url":"www.weibo.com"}]}

    等等。

     

    注意:还有另外一种数据格式叫XML。

    Web接口的访问

    比如:

    天气查看接口的地址为:http://weather.51wnl.com/weatherinfo/GetMoreWeather

     

    参数列表如下:

    参数名                       备注

    cityCode                     城市编码

    weatherType             查看类型[0:查看一周内的天气情况 1:查看当天的天气情况]

     

    打开浏览器,输入如下地址:

    http://weather.51wnl.com/weatherinfo/GetMoreWeather?cityCode=101020300&weatherType=0

    返回的json数据如下:

     

    如果要格式化显示json数据的话,可以在火狐上安装格式化json数据的插件


    或者,通过在线网站对json数据格式化显示


    Web接口自动化测试

    检查接口返回的城市和温度是否正确。

    代码如下:

    package day01;
    import static org.junit.Assert.*;
    import java.util.Arrays;
    import java.util.List;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    import org.json.JSONObject;
    import org.junit.After;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.junit.runners.Parameterized.Parameters;
    import org.junit.runners.Parameterized;
    
    @RunWith(Parameterized.class)
    public class WeatherTest {
        private CloseableHttpClient httpClient;
        private int id;//用例编号
        private String city;//城市编号
        private int type;//查看类型  0:查看本周内的天气    1:查看当天的天气
        private String expectedCity;//期望值
        private String expectedTemp;//期望温度
    
        public WeatherTest(int id, String city, int type, String expectedCity, StringexpectedTemp) {
            super();
            this.id = id;
            this.city = city;
            this.type = type;
            this.expectedCity = expectedCity;
            this.expectedTemp = expectedTemp;
        }
    
        @After
        public void end() throws Exception{
            httpClient.close();//关闭客户端
        }
    
        @Parameters
        public static List data(){
            Object[][] arr = {
                    {1,"101010100",1,"北京","-1"},
                    {2,"101020100",1,"上海","5"},
                    {3,"101280101",1,"广州","8"}
            };
            return Arrays.asList(arr);
        }
    
        @Test
        public void test() throws Exception{
                //接口地址
                 String url ="http://weather.51wnl.com/weatherinfo/GetMoreWeather";
                 //创建一个客户端用来访问接口
                 httpClient= HttpClients.createDefault();
                 //HttpClient httpClient = new DefaultHttpClient();
                 //创建一个请求
                HttpGet httpGet =new HttpGet(url+"?cityCode="+city+"&weatherType="+type);       
                //发送该请求
                HttpResponse result =httpClient.execute(httpGet);
                //获取接口返回的内容
                String resData= EntityUtils.toString(result.getEntity());
                //将接口返回的内容转成JSON实例
                JSONObject json =new JSONObject(resData);
                //从JSON实例里面获取天气实例
                JSONObject weatherInfo =json.getJSONObject("weatherinfo"); 
                //验证返回的城市是否和期望值相等
                assertEquals(expectedCity,weatherInfo.getString("city"));
                //验证返回的温度是否和期望值相等
                assertEquals(expectedTemp,weatherInfo.getString("temp"));
        }
    }


    附截图:


    展开全文
  • web接口自动化测试 基于python语言 web接口自动化测试 基于python语言 最新版
  • 资源名称:web接口自动化测试 基于python语言资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
  • Postman做web接口自动化测试

    千次阅读 2018-07-27 14:11:48
    Postman做web接口自动化测试   一 一、Postman做Web接口自动化测试的优势 1、Postman是Chrome的一个应用。使用Postman,可以快速构建请求、保存以供以后使用,并分析API发送的响应。 2、Postman有响应结果...

    Postman做web接口自动化测试   一


    一、Postman做Web接口自动化测试的优势

    1、Postman是Chrome的一个应用。使用Postman,可以快速构建请求、保存以供以后使用,并分析API发送的响应。

    2、Postman有响应结果的比较功能,可以用来写测试用例

    3、可以把测试用例放在同一个目录下批量运行,并且可以设置迭代次数

    4、可以设置环境变量,方便测试环境和生产环境使用同一套测试用例

    5、测试结果方便查看


    二、Postman安装

           Postman可以作为插件安装在chrome,也可以安装到桌面。

    1、Chrome插件安装地址(要翻墙):https://chrome.google.com/webstore/detail/postman-rest-client-packa/fhbjgbiflinjbdggehcddcbncdddomop?hl=en

    2、本地安装下载地址:https://www.getpostman.com/apps,下载后直接点下一步进行安装

    3、桌面版安装后打开界面如下:


    三、发送一个请求

    1、点击“+”添加一个请求,选择请求方式,下面选的是“GET”,输入请求地址,点击“Send”


    2、响应信息如下



    3、添加cookie发送请求

           有点请求需要登录后才能发送成功,这时可以先发送一条登录的请求,然后再发送相应的请求。有可以不用先登录,只要在发送的请求头里添加相应的cookie就行了


    4、点击“Save”,保存请求,方便下次使用


    四、设置环境变量

    1、点击右上角的设置图标,选择“Manage Environments”


    2、点击“add”进行添加



    3、填写环境名称,以及该环境下用到的变量


    4、使用环境变量

         环境变量可以使用在以下地方:

    • URL
    • URL params
    • Header values
    • form-data/url-encoded values
    • Raw body content
    • Helper fields
    注:变量名要写在双花括号里,如下图:



    5、代码自动创建环境变量

    方式一:在请求前创建



    方式二:在Tests里创建



    6、使用随机数

    PostMan 除了提供环境变量和全局变量外,还提供了三种随机数。
    {{$guid}}
    :添加一个V4风格GUID

    {{$timestamp}}
    :将当前的时间戳,精确到秒

    {{$randomInt}}
    :添加0和1000之间的随机整数



    Postman做web接口自动化测试   二


    一、第一个测试用例

      Postman可以为每个请求编写和运行测试。Postman测试本质上是为特殊测试对象设置值的JavaScript代码

    1、请求方式选择GET,地址输入:www.baidu.com,如下图



    2、在Tests文本域编写测试脚本,对响应的内容进行判断例如:

    tests[“Status code is 200”] = responseCode.code === 200;

    tests[“Body matches string”] = responseBody.has(“百度一下”);



    3、点击“Send”,可以看到测试结果

    4、用例不通过的情况:




    二、在编写测试脚本时需要记住那么多语法可以通过编辑器旁边列出常用的代码段来简化此过程。您可以选择要添加的代码段,并将相应的代码添加到测试编辑器中。

    内置脚本说明:

    1. 1. 清除一个全局变量
    2. Clear a global variable
    3. 对应脚本:
    4. postman.clearGlobalVariable("variable_key");
    5. 参数:需要清除的变量的key
    6. 2.清除一个环境变量
    7. Clear an environment variable
    8. 对应脚本:
    9. postman.clearEnvironmentVariable("variable_key");
    10. 参数:需要清除的环境变量的key
    11. 3.response包含内容
    12. Response body:Contains string
    13. 对应脚本:
    14. tests["Body matches string"] =responseBody.has("string_you_want_to_search");
    15. 参数:预期内容
    16. 4.将xml格式的response转换成son格式
    17. Response body:Convert XML body to a JSON Object
    18. 对应脚本:
    19. var jsonObject = xml2Json(responseBody);
    20. 参数:(默认不需要设置参数,为接口的response)需要转换的xml
    21. 5.response等于预期内容
    22. Response body:Is equal to a string
    23. 对应脚本:
    24. tests["Body is correct"] = responseBody === "response_body_string";
    25. 参数:预期response
    26. 6.json解析key的值进行校验
    27. Response body:JSON value check
    28. 对应脚本:
    29. tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args
    30. 参数:test替换被测的值,args替换被测的key
    31. 7.检查response的header信息是否有被测字段
    32. Response headers:Content-Type header check
    33. 对应脚本:
    34. tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
    35. 参数:预期header
    36. 8.响应时间判断
    37. Response time is less than 200ms
    38. 对应脚本:
    39. tests["Response time is less than 200ms"] = responseTime < 200;
    40. 参数:响应时间
    41. 9.设置全局变量
    42. Set an global variable
    43. 对应脚本:
    44. postman.setGlobalVariable("variable_key", "variable_value");
    45. 参数:全局变量的键值
    46. 10.设置环境变量
    47. Set an environment variable
    48. 对应脚本:
    49. postman.setEnvironmentVariable("variable_key", "variable_value");
    50. 参数:环境变量的键值
    51. 11.判断状态码
    52. Status code:Code is 200
    53. 对应脚本:
    54. tests["Status code is 200"] = responseCode.code != 400;
    55. 参数:状态码
    56. 12.检查code name 是否包含内容
    57. Status code:Code name has string
    58. 对应脚本:
    59. tests["Status code name has string"] = responseCode.name.has("Created");
    60. 参数:预期code name包含字符串
    61. 13.成功的post请求
    62. Status code:Successful POST request
    63. 对应脚本:
    64. tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
    65. 14.微小验证器
    66. Use Tiny Validator for JSON data
    67. 对应脚本:
    68. var schema = {
    69. "items": {
    70. "type": "boolean"
    71. }
    72. };
    73. var data1 = [true, false];
    74. var data2 = [true, 123];
    75. console.log(tv4.error);
    76. tests["Valid Data1"] = tv4.validate(data1, schema);
    77. tests["Valid Data2"] = tv4.validate(data2, schema);
    78. 参数:可以修改items里面的键值对来对应验证json的参数





    Postman做web接口自动化测试   三

    使用数据变量多次运行集合

         您可以在Collection Runner中使用数据变量来运行具有不同数据集的集合。Collection Runner可以导入CSV或JSON文件,然后使用HTTP请求和脚本中的数据文件中的值。

    1、创建测试集文件夹


    2、准备要运行的变量文件,如:url.json

    1. [
    2. {“url”:”baidu”},
    3. {“url”:”google”},
    4. {“url”:”tmall”}
    5. ]

    3、添加接口

    接口中的使用变量要用这种格式:{{url}}

    在预先请求和测试脚本中,特变量要用这种格式data.url或data [‘url’],这将允许您从数据文件访问url变量的值。


    4、打开“Collection Runner”窗口并选择相应的集合或文件夹


    5、设置迭代

      迭代计数是您希望集合或文件夹运行的次数。每次迭代将使用您的数据文件中的一行。如果迭代次数大于数据文件中的行数,则重复上一行的值


    6、选择要运行的变量文件选择数据文件类型

      对于JSON文件,您需要确保该文件具有一个键/值对数组。数组中的每个元素都是键值对的对象,表示1次迭代。这些键用作变量名称,而值在请求中被替换




    7、选择数据文件类型后,点击“Preview”可以预览变量数据



    8、运行集合并观察结果


    展开全文
  • Postman做web接口自动化测试

    万次阅读 多人点赞 2017-03-27 11:18:19
    Postman做web接口自动化测试 二 一、设置测试集 二、测试运行

    Postman做web接口自动化测试   二


    一、第一个测试用例

      Postman可以为每个请求编写和运行测试。Postman测试本质上是为特殊测试对象设置值的JavaScript代码

    1、请求方式选择GET,地址输入:www.baidu.com,如下图



    2、在Tests文本域编写测试脚本,对响应的内容进行判断例如:

    tests["Status code is 200"] = responseCode.code === 200;

    tests["Body matches string"] = responseBody.has("百度一下");



    3、点击“Send”,可以看到测试结果

    4、用例不通过的情况:




    二、在编写测试脚本时需要记住那么多语法可以通过编辑器旁边列出常用的代码段来简化此过程。您可以选择要添加的代码段,并将相应的代码添加到测试编辑器中。

    内置脚本说明:

    1. 清除一个全局变量
         Clear a global variable
        对应脚本:
        postman.clearGlobalVariable("variable_key");
        参数:需要清除的变量的key
    
    2.清除一个环境变量
        Clear an environment variable
        对应脚本:
        postman.clearEnvironmentVariable("variable_key");
        参数:需要清除的环境变量的key
    
    3.response包含内容
        Response body:Contains string
        对应脚本:
        tests["Body matches string"] =responseBody.has("string_you_want_to_search");
        参数:预期内容
    
    4.将xml格式的response转换成son格式
        Response body:Convert XML body to a JSON Object
        对应脚本:
        var jsonObject = xml2Json(responseBody);
        参数:(默认不需要设置参数,为接口的response)需要转换的xml
    
    5.response等于预期内容
        Response body:Is equal to a string
        对应脚本:
        tests["Body is correct"] = responseBody === "response_body_string";
        参数:预期response
    
    6.json解析key的值进行校验
        Response body:JSON value check
        对应脚本:
        tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args
        参数:test替换被测的值,args替换被测的key
    
    7.检查response的header信息是否有被测字段
        Response headers:Content-Type header check
        对应脚本:
        tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
        参数:预期header
    
    8.响应时间判断
        Response time is less than 200ms
        对应脚本:
        tests["Response time is less than 200ms"] = responseTime < 200;
        参数:响应时间
    
    9.设置全局变量
          Set an global variable
          对应脚本:
          postman.setGlobalVariable("variable_key", "variable_value");
          参数:全局变量的键值
    
    10.设置环境变量
          Set an environment variable
          对应脚本:
          postman.setEnvironmentVariable("variable_key", "variable_value");
          参数:环境变量的键值
    
    11.判断状态码
          Status code:Code is 200
          对应脚本:
          tests["Status code is 200"] = responseCode.code != 400;
          参数:状态码
    
    12.检查code name 是否包含内容
          Status code:Code name has string
          对应脚本:
          tests["Status code name has string"] = responseCode.name.has("Created");
          参数:预期code name包含字符串
    
    13.成功的post请求
          Status code:Successful POST request
          对应脚本:
          tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
    
    14.微小验证器
           Use Tiny Validator for JSON data            
           对应脚本: 
            var schema = {
             "items": {
             "type": "boolean"
                 }
             };
            var data1 = [true, false];
            var data2 = [true, 123];
            console.log(tv4.error);
            tests["Valid Data1"] = tv4.validate(data1, schema);
            tests["Valid Data2"] = tv4.validate(data2, schema);
            参数:可以修改items里面的键值对来对应验证json的参数




    展开全文
  • Postman做web接口自动化测试

    千次阅读 2017-03-30 11:25:02
    Postman做web接口自动化测试 使用数据变量多次运行集合

    使用数据变量多次运行集合

         您可以在Collection Runner中使用数据变量来运行具有不同数据集的集合。Collection Runner可以导入CSV或JSON文件,然后使用HTTP请求和脚本中的数据文件中的值。

    1、创建测试集文件夹


    2、准备要运行的变量文件,如:url.json

    [
    {"url":"baidu"},
    {"url":"google"},
    {"url":"tmall"}
    ]

    3、添加接口

    接口中的使用变量要用这种格式:{{url}}

    在预先请求和测试脚本中,特变量要用这种格式data.url或data ['url'],这将允许您从数据文件访问url变量的值。


    4、打开“Collection Runner”窗口并选择相应的集合或文件夹


    5、设置迭代

      迭代计数是您希望集合或文件夹运行的次数。每次迭代将使用您的数据文件中的一行。如果迭代次数大于数据文件中的行数,则重复上一行的值


    6、选择要运行的变量文件选择数据文件类型

      对于JSON文件,您需要确保该文件具有一个键/值对数组。数组中的每个元素都是键值对的对象,表示1次迭代。这些键用作变量名称,而值在请求中被替换




    7、选择数据文件类型后,点击“Preview”可以预览变量数据



    8、运行集合并观察结果


    展开全文
  • Postman做web接口自动化测试 一 一、Postman做Web接口自动化测试的优势 1、Postman是Chrome的一个应用。使用Postman,可以快速构建请求、保存以供以后使用,并分析API发送的响应。 2、Postman有响应结果的比较...
  • 简单的web接口自动化测试 1、寻找***对象(无验证码的意见反馈网站) 2、收集API信息 使用chorme打开页面 点击F12进入开发者调试模式 填写好后,点击提交按钮 点击NETWORK,找到含有输入参数的一项 3、编写crack...
  • Postman做web接口自动化测试

    万次阅读 多人点赞 2017-03-27 11:16:36
    Postman做Web接口自动化测试, 1、Postman是Chrome的一个应用。使用Postman,可以快速构建请求,保存以供以后使用,并分析API发送的响应。 2、Postman有响应结果的比较功能,可以用来写测试用例 3、可以把测试用例...
  • 由于web接口自动化测试需要用到python的第三方库--requests库,运用requests库可以模拟发送http请求,再结合unittest测试框架,就能完成web接口自动化测试。 所以笔者今天先来总结一下requests库的用法。希望对...
  • 希望在手动测试和自动化测试中建立一个桥梁,利用手动测试产生的结果,来自动生成测试用例。 设计思路: 通过监控手动测试的结果,我们可以对手动测试的结果进行分析,得到请求的条件以及返回的结果。 通过泛化请求...
  • 一、Postman做Web接口自动化测试的优势 1、Postman是Chrome的一个应用。使用Postman,可以快速构建请求、保存以供以后使用,并分析API发送的响应。 2、Postman有响应结果的比较功能,可以用来写测试用例 3...
  • 接口测试 概念 接口测试测试系统组件间接口的一种测试接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖...
  • 1、Postman是Chrome的一个应用。使用Postman,可以快速构建请求、保存以供以后使用,并分析API发送的响应。 2、Postman有响应结果的比较功能,可以用来写测试...postman jmeter等等接口工具详细介绍,可以看看:h...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,620
精华内容 1,048
关键字:

web接口自动化测试