インターフェイスのJMeterのテストインスタンス - 小さなチョッパパイロット
試験はHTTPプロトコルインターフェイスに基づいて、インターフェイスのテストは、主のJMeterを介して行われ、これにより馴染みのJMeterの基本的な動作です。
実際の戦闘は、私たちは、インタフェースの文書を学習することで、テストケースを設計し、そして最終的にJMeterの実際の戦闘を使用することができ、詳細なインターフェイスのドキュメントを提供するインターネット・インタフェース・テスト・プロジェクトから見つけます。全体的に、このプロジェクトは、プロジェクトのウェブサイトに手を実施するのに適している:http://doc.nnzhp.cn/index.php?s=/6&page_id=8
次のようにすべての設定は次のとおりです。
1.学生情報(GETリクエスト)を取得
インタフェースの文書から、我々はここでは詳細に説明されていない、あまりにも多くのパラメータを返し、学生が必要とされるstu_nameに上院に、情報のGETリクエストが道を使用している得ることがわかります。次のように、HTTPリクエストを追加して、結果ツリーのスレッドグループを見て、のは、スレッドグループを作成してみましょう:
上記リクエストは、リクエストエラー場合、システムデータベースは値stu_nameを充填しないよう、次の結果が正しい結果を返しています。
2.ログ(POST)
ログインインターフェイスでは、インターフェイスの文書はテストユーザーを提供し、我々はテストをシミュレートするために、ユーザーを使用することができます。
インタフェースログインPOSTリクエストメソッドが使用され、パラメータのユーザー名とpasswdを必要とする以下のように、我々は、スレッドグループを作成してHTTPリクエストを追加して、結果ツリーのスレッドグループを見てみましょう:
我々は上院にエラーを記入すると、それは次のような結果を返します。
3.学生情報(POSTリクエスト、JSONタイプ)を追加します。
学生情報インターフェイスを追加し、インタフェースドキュメントはJSONリクエストの例があり、JSONの種類があり、また、使用リクエストメソッドをPOSTが、別のログイン・インタフェースと、それは上院にだ、私たちは直接コピーすることができ、簡単なあなたはそれを変更することができます。次のようにここで、我々は、スレッドグループを作成してHTTPリクエストを追加して、結果ツリーのスレッドグループを見てみましょう:
ここでは、学生の情報は既にシステムに存在し、その失敗の加算結果を返すように。だから、私は新しい学生情報を追加する必要があり、加えて、中国の文字化けを追加される次のUTF-8、または学生情報のエンコード形式を調整する必要があります。
在这里,大家可以设计不同的测试用例来进行测试,但操作方式都是一样的,只是返回结果不同而已。
4.学生充值金币(POST请求,添加cookie)
这个接口有权限验证,需要admin用户登录成功后才可以进行充值,另外,在入参 stu_id 和 gold 中,我们发现 stu_id 指的是学生ID,这里其实就是最开始 获取学生信息 接口返回结果中的id字段,如下:
因此,我们创建一个线程组,在线程组下依次添加登录请求、学生充值金币请求、察看结果树,在登录请求下添加JSON提取器,用于提取cookie,在学生充值金币请求下添加HTTP Cookie管理器,如下:
在JSON提取器中,我们通过 $.login_info.sign 来提取登录的cookie,并在HTTP Cookie管理器中进行引用,如果没有关联cookie,那么将充值失败,提示未登录。
5.获取所有学生信息(GET请求,添加header)
从接口文档中,我们了解到,要获取所有学生信息,需要添加请求信息头,因此,我们创建一个线程组,在线程组下依次添加HTTP信息头管理器、HTTP请求、察看结果树,如下:
这里需要说一下,我们在返回的结果中看到,有些学生信息中有很多“???”,这是因为在添加学生信息的时候,我们传入中文数据导致乱码,因此在添加学生信息接口中,我特意说明让大家设置utf-8编码,这样添加的学生信息就不会出现乱码了。
6.文件上传(POST请求)
在上传文件接口中,需要注意的是这里的入参是file类型的,因此,我们需要准备一个待上传的文件。
最后,我们创建一个线程组,在线程组下依次添加文件上传请求、察看结果树,如下:
OK,以上就是通过Jmeter对这个接口项目进行接口测试的过程,比较基础,适合新手用来练习操作Jmeter,另外,我发现还有另外一个接口项目:抽奖项目api(http://doc.nnzhp.cn/index.php?s=/5&page_id=7),感觉和本次测试项目差不多,大家有兴趣的可以尝试下,后续有时间的话,将考虑通过Python对本项目进行接口测试。
最后,通过本项目,可以看到,Jmeter上手起来挺快的,即使不懂代码的同学学会Jmeter的基本操作后,也可以很快进行接口测试实践。
本次测试的是基于HTTP协议的接口,主要是通过Jmeter来完成接口测试,借此熟悉Jmeter的基本操作。
本次实战,我是从网上找的接口测试项目,该项目提供了详细的接口文档,我们可以通过学习接口文档来设计测试用例,最后再使用Jmeter进行实战。总的来说,这个项目很适合用来练手,项目网址:http://doc.nnzhp.cn/index.php?s=/6&page_id=8
所有设置如下:
1.获取学生信息(GET请求)
从接口文档中,我们可以看到获取学生信息用到的是GET方式的请求,入参中 stu_name 为必填项,返回参数太多,在此就不详细说明了。我们先创建一个线程组,在线程组下添加一个HTTP请求和察看结果树,如下:
上面的是请求正确的结果,如果请求错误,比如填写一个系统数据库中 stu_name 没有的值,那么返回结果如下:
2.登录(POST)
在登录接口中,接口文档中提供了一个测试用户,我们可以利用该用户来模拟测试。
登录接口用到的是POST请求方式,入参 username 和 passwd 为必填项,我们再创建1个线程组,在线程组下添加一个HTTP请求和察看结果树,如下:
当我们填写的是错误的入参时,返回结果如下:
3.添加学生信息(POST请求,JSON类型)
在添加学生信息的接口中,用到的也是POST请求方式,但与登录接口不同的是,它的入参是JSON类型的,接口文档中有1个JSON请求示例,我们可以直接复制过来,简单修改一下即可。在这里,我们再创建1个线程组,在线程组下添加一个HTTP请求和察看结果树,如下:
在这里,由于这个学生信息已存在系统中了,因此返回添加失败的结果。所以,我需要添加1个新的学生信息,另外,这里需要调整下编码格式为utf-8,否则添加的学生信息会出现中文乱码。
在这里,大家可以设计不同的测试用例来进行测试,但操作方式都是一样的,只是返回结果不同而已。
4.学生充值金币(POST请求,添加cookie)
这个接口有权限验证,需要admin用户登录成功后才可以进行充值,另外,在入参 stu_id 和 gold 中,我们发现 stu_id 指的是学生ID,这里其实就是最开始 获取学生信息 接口返回结果中的id字段,如下:
因此,我们创建一个线程组,在线程组下依次添加登录请求、学生充值金币请求、察看结果树,在登录请求下添加JSON提取器,用于提取cookie,在学生充值金币请求下添加HTTP Cookie管理器,如下:
在JSON提取器中,我们通过 $.login_info.sign 来提取登录的cookie,并在HTTP Cookie管理器中进行引用,如果没有关联cookie,那么将充值失败,提示未登录。
5.获取所有学生信息(GET请求,添加header)
从接口文档中,我们了解到,要获取所有学生信息,需要添加请求信息头,因此,我们创建一个线程组,在线程组下依次添加HTTP信息头管理器、HTTP请求、察看结果树,如下:
这里需要说一下,我们在返回的结果中看到,有些学生信息中有很多“???”,这是因为在添加学生信息的时候,我们传入中文数据导致乱码,因此在添加学生信息接口中,我特意说明让大家设置utf-8编码,这样添加的学生信息就不会出现乱码了。
6.文件上传(POST请求)
アップロードインターフェースでは、ここで参照は、したがって、我々は、アップロードするファイルを準備する必要があり、ファイルの種類であることに留意すべきです。
最後に、我々は、スレッドグループを作成し、以下のように、結果ツリーを見て、スレッドグループ内のファイルのアップロード要求を追加]をクリックします:
OK、上記のほかに、JMeterを操作し実践するために使用初心者に適した、このインターフェイスのJMeterプロセスを通じてインタフェース・テスト・プロジェクト、比較の基準であり、私は別のインタフェースプロジェクトがあることを発見:プロジェクトはAPI(ドロー//doc.nnzhp:HTTPを。 CN / index.phpを?S = / = 5&7をPAGE_ID)、およびこのテストプロジェクトの気持ちほぼ全員興味は、フォローアップの時間を試すことができ、それは、Pythonによるプロジェクトのインタフェースのテストのために考慮されます。
最後に、このプロジェクトを通じて、あなたが見ることができる、JMeterは学生がJMeterのも早くテストの実践をインタフェースすることができ、基本的な操作を習得するためのコードを知らない場合でも、非常に迅速に起動しました。