2023 年全国専門学校技能競技大会 - ソフトウェア テスト問題セット 6 - GZ034 ソフトウェア テスト

目次

2023年度 全国高専技能競技大会 ソフトウェア試験問題集 第6集

タスク1 環境構築とシステム導入

タスク 2 単体テスト

タスク 3 のテスト文書

タスク 4 の機能テスト

タスク 5 の自動テスト

タスク 6 のパフォーマンス テスト

タスク 7 インターフェイス テスト


2023年度 全国高専技能競技大会 ソフトウェア試験問題集 第6集

イベント名:            ソフトウェアテスト            

英語名:ソフトウェアテスト                   

競技番号:GZ034                         

所属業種:         電子・情報部門          

コンテスト部門:          高等職業教育          

コンテストの主な内容:

タスク

シリアルナンバー

技能競技

モジュール名

技能競技の内容

重み

割合

コンペ

時間

タスク1

環境構築と

システム導入

ソフトウェアテストコンテストプロジェクトの要件に従って、テスト環境を構築および構成し、アプリケーションシステムをインストールおよび展開します。

5%

480

タスク2

単体テスト

ソフトウェアテストコンペプロジェクトの要件に従って、アプリケーションプログラムを作成し、テストデータを設計してテスト結果を取得し、単体テストレポートを作成します。

10%

タスク3

テストドキュメント

ソフトウェアテストコンテストプロジェクトの要件に従って、テスト計画文書とテスト概要レポート文書を作成します。

10%

タスク4

機能テスト

ソフトウェアテストコンペプロジェクトの要件に従って、機能テストケースを設計し、実行後に欠陥レポートを提出します。

25%

タスク5

自動テスト

ソフトウェア自動テストの要件に従って、自動テスト スクリプトを作成して実行します。

20%

タスク6

性能試験

ソフトウェアパフォーマンステストの要件に従って、実行します

性能試験

18%

タスク7

インターフェーステスト

ソフトウェアインターフェイステストの要件に従って、実行します

インターフェーステスト

7%

プロ意識

競技チームは明確かつ合理的な分業、標準的な運営、文明的な競争、企業の「5S」(整理、整頓、清掃、清潔、品質)などの内容を持っています。

5%


タスク1 環境構築とシステム導入

1.タスクの要件

1. VirtualBox で CentOS システムを使用して (注: このシステムは純粋なシステムではないため、ポート占有などの状況が発生する可能性があります)、関連ソフトウェアのインストールとインストール中に発生した問題の解決を行うため、すべての操作はコマンド インターフェイスを使用して完了する必要があります。

2. CentOSシステムの root アカウントのパスワードは 123456 です。

3.提供される関連展開ファイルは、CentOS システムの /opt ディレクトリに保存されます

4. JDK をインストールして構成します。

  • CentOS システムでは、提供されている JDK インストール パッケージを使用して JDK をインストールします。
  • インストールが成功したら、JDK バージョン情報を確認します。
  • スクリーンショットの要件: ①JDK 環境変数設定のスクリーンショット、②JDK バージョン情報の表示のスクリーンショットの合計 2 枚の写真があります。

5. MySQL をインストールして構成します。

  • CentOS システムでは、提供されている MySQL インストール パッケージを使用して MySQL をインストールします。
  • MySql の root アカウントのパスワードを次のように変更します。
  • MySQL が正常にインストールされたら、人事総合サービス システム データベース (suthr.sql) を初期化します。
  • スクリーンショットの要件:①rootアカウントでMySQLにログインできたスクリーンショット、②人材総合サービスシステムのデータベースを初期化するコマンドのスクリーンショットの計2枚。

6. Tomcat をインストールして構成します。

  • CentOS システムでは、提供されている Tomcat インストール パッケージを使用して Tomcat をインストールします。
  • Tomcat が正常にインストールされたら、ホスト マシンのブラウザから Tomcat ホームページにアクセスします。
  • スクリーンショットの要件: ① Tomcat サービスが正常に起動したスクリーンショット、② ブラウザからアクセスした Tomcat ホームページのスクリーンショットの合計 2 枚。

7. アプリケーション システムの展開:

  • HR システム (suthr.war) を Tomcat にデプロイします。
  • 導入が成功したら、ホスト マシンのブラウザからシステム ログイン ページにアクセスします。
  • スクリーンショットの要件: 合計 2 枚の写真: ① システムが正常に展開された後の webapps ディレクトリのスクリーンショット; ② ブラウザを通じてアクセスしたシステムのログイン ページのスクリーンショット。

2.レポート作成

環境構築状況に応じて、環境構築・システム導入報告書のテンプレートを参照し、必要に応じて環境構築の過程や結果のスクリーンショットを取得してテンプレートに貼り付け、環境構築・システム導入報告書を完成させます。

タスク 2 単体テスト

1.タスクの要件

トピック 1:以下のフローチャートに従って、対応する分析と処理を実現し、結果を表示するプログラムを作成します。戻り結果は「a=x:」 (x は 2、3、または 4) です。変数 x と y は整数でなければなりません。プログラム コードを作成し、JUnit フレームワークを使用してテスト クラスを作成し、作成したプログラム コードをテストします。ステートメント カバレッジ テストを満たすためにテスト クラス内の最小限のテスト データを設計し、テスト データごとにテスト クラスにテスト メソッドを作成します。 。期待される結果の値が実際の戻り値と一致するかどうかを判断するには、assertThat のqualTo アサーションを使用します。

 

トピック 2:入力された 3 つの境界値に基づいて、どのような三角形が形成できるかを判断します。三辺は変数a、b、cで、範囲は1≦境界値≦10で、範囲外の場合は「入力境界値が範囲外です」と表示されます。2 つの辺の合計が 3 番目の辺より大きくなければならないという条件が満たされていない場合は、「入力側の値は三角形を形成できません」というプロンプトが表示されます。入力された境界値が三角形を形成できる場合、2 つの辺のみが同じ場合は「二等辺三角形を形成できる」と表示され、3 つの辺が等しい場合は「正三角形を形成できる」と表示され、境界値が等しい場合は「正三角形を形成できる」と表示されます。特殊な三角形を満たさない場合は、「通常の三角形を形成できます」と表示されます。プログラム コードを記述し、JUnit フレームワークを使用してテスト クラスを記述し、記述したプログラム コードをテストします。判定カバレッジ テストを満たすようにテスト クラス内で最小限のテスト データを設計し、テスト データごとにテスト クラス内にテスト メソッドを記述します。 。予想される結果値が実際の戻り値と一致しているかどうかを判断するには、assertEquals を使用します。

トピック 3:会社は利益手数料に基づいてボーナスを分配します。利益額を6つのギアに分割して手数料を支払います。

ギア 1: 利益が 100,000 元以下の場合は 10% の手数料。

ギア 2: 利益の 10 万元を超え 20 万元以下の部分に対して 7.5% の手数料。

ギア 3: 利益のうち 20 万元を超え 40 万元以下の部分に対して 5% の手数料。

ギア 4: 利益のうち 40 万人民元を超え 60 万人民元以下の部分に対して 3% の手数料。

Gear 5: 利益のうち 60 万人民元を超え 100 万人民元以下の部分に対して 1.5% の手数料。

Gear 6: 100 万人民元を超える利益部分に対して 1% の手数料。

当月の投入利益 x に基づいて最終的な合計手数料を計算するプログラムを作成します。投入利益は数万で、x は整数です。返された結果はグレードに応じて「手数料合計: y 万」を出力します。y は計算された手数料値です。プログラム コードを記述し、JUnit フレームワークを使用してテスト クラスを記述し、記述したプログラム コードをテストします。判定カバレッジ テストを満たすようにテスト クラス内で最小限のテスト データを設計し、テスト データごとにテスト クラス内にテスト メソッドを記述します。 。出力テキストの期待結果値が実際の戻り値と一致するかどうかを判断するには、assertThat の is アサーションを使用します。

質問 4:小文字の文字列を入力してください。文字列プレフィックスが ab で始まる場合、プレフィックス ab を ef に置き換えて置換後の文字列を出力し、「プレフィックスを置換した後の文字列は次のとおりです」というテキストと置換された文字列の値を返します。サフィックスがcd でプレフィックスが ab ではない場合、文字列内のすべての cd を gh に置き換え、置換後の文字列を出力し、「CD を置き換えた後の文字列は:」というテキストと置換後の文字列値を返します。それ以外の場合は、すべての文字を大文字で出力します。 、「大文字の文字列は次のとおりです:」というテキストと変換された文字列値を返します。プログラム コードを記述し、JUnit フレームワークを使用してテスト クラスを記述し、記述されたプログラム コードをテストし、条件付きカバレッジ テストを満たすようにテスト クラス内の最小限のテスト データを設計し、パラメーター化されたテスト (@Parameters) を使用してテストを完了します。テストクラスで。予想される結果値が実際の戻り値と一致しているかどうかを判断するには、assertEquals を使用します。

2.レポート作成

単体テストの状況に応じて、単体テストレポートテンプレートを参照し、必要に応じて記述したJavaソースコード、テストクラス関連コード、関連スクリーンショットをテンプレートに貼り付け、単体テストレポートを完成させます。

タスク 3 のテスト文書

1. テスト計画

1.概要

1.1プロジェクトの背景

【テストプロジェクトの全体的な背景を説明します】

1.2執筆の目的

【テスト計画書を書く目的を説明する】

2.テストタスク

2.1テストの目的

【機能テスト、自動テスト、性能テスト、インターフェーステストの目的をそれぞれ説明】

2.2テスト参考資料

【試験手順の説明に使用した参考資料】

2.3テスト範囲

[機能テスト、自動テスト、パフォーマンステスト、インターフェーステスト、具体的なテスト内容を説明]

3.テストリソース

3.1ソフトウェア構成

【機能テスト、自動テスト、性能テスト、インターフェーステストのプロセスで使用するテスト環境とツールをそれぞれ説明】

テストの種類

テスト環境とツール

3.2ハードウェア構成

[クライアントとモバイル端末の関連ハードウェア構成について]

装備アイテム

構成

クライアント

携帯端末

3.3人的資源の配置

[テスターの役割、責任、最終的な成果物について説明する]

人員

(駅番号)

役割

主な任務

出力

4.テスト計画

4.1全体的なテストスケジュールの計画

【各試験段階の時間と人員配置について説明】

テスト段階

スケジュール

人材派遣

4.2機能テスト計画

[機能テストの目標、範囲、テクノロジー、手順、開始基準と終了基準を説明する]

テスト対象

試験範囲

応用技術

ステップ

開始基準

完成基準

4.3自動化されたテスト計画

[自動テストの目標、範囲、技術、手順、開始基準と終了基準を説明する]

テスト対象

試験範囲

応用技術

ステップ

開始基準

完成基準

4.4パフォーマンステスト計画

[パフォーマンステストの目的、範囲、手法、手順、開始基準と終了基準を説明する]

テスト対象

試験範囲

応用技術

ステップ

開始基準

完成基準

4.5インターフェーステスト計画

[インターフェーステストの目的、範囲、手法、手順、開始基準と終了基準を説明する]

テスト対象

試験範囲

応用技術

ステップ

開始基準

完成基準

5.出版基準

【機能テスト、性能テスト、インターフェーステスト、ドキュメントテストの説明はテスト後に公開可能】

テストの種類

リリース規格

6.関連するリスク

【試験工程で想定されるリスクとその対処方法について説明します】

リスクの種類

リスクの詳細

反応

2.試験報告書

1. 概述

1.1 项目背景

【说明测试项目的整体背景】

1.2 编写目的

【说明测试报告的编写目的】

2. 测试结果文档

【说明测试结果产出的文档】

3. 测试设计

3.1 功能测试方法设计介绍

【说明功能测试过程中所使用到的方法】

3.2 自动化测试方法设计介绍

【说明自动化测试过程中所使用到的方法】

3.3 性能测试方法设计介绍

【说明性能测试过程中所使用到的方法】

3.4 接口测试方法设计介绍

【说明接口测试过程中所使用到的方法】

4. 测试回顾

4.1 功能测试过程回顾

【说明功能测试的整体流程及结果】

4.2 自动化测试过程回顾

【说明自动化测试的整体流程及结果】

4.3 性能测试过程回顾

【说明性能测试的整体流程及结果】

4.4 接口测试过程回顾

【说明接口测试的整体流程及结果】

5. 用例汇总

【说明测试用例汇总统计情况】

设备端

功能模块

测试用例数

用例编写人

(工位号)

执行人

(工位号)

用例合计(个)

6. Bug汇总

【说明缺陷Bug汇总统计情况】

设备端

功能模块

Bug严重程度

Bug类型

严重

很高

合计

功能

UI

建议性

合计

合计(个)

7. 测试结论

【说明测试结果总结、过程问题统计、系统质量评价及团队经验教训】

任务 功能测试

一、测试用例

 

二、Bug清单

 

任务五 自动化测试

一、任务要求

题目1:按照以下步骤在PyCharm中进行自动化测试脚本编写并执行。

1. 设置智能时间等待3秒并将浏览器窗口最大化;

2. 引入By方法类;

3. 通过NAME属性定位用户名输入框,并输入用户名XTGLY;

4. 通过ID属性定位密码输入框,并输入密码123456;

5. 通过CLASS_NAME方法定位登录按钮,使用click()方法点击登录按钮;

6. 通过TAG_NAME复数方法定位商品管理页面的新增按钮,并使用click()方法点击;

7. 通过XPATH方法定位并选择商品分类为“测试”;

8. 通过CSS方法定位商品品牌下拉框;

9. 通过Select类中的by_visible_text方法选择商品品牌为“测试”;

10. 使用get_screenshot_as_file对页面进行截图操作(命名为test_Select01.png,存放在D盘根目录下)。

题目2:按照以下步骤在PyCharm中进行自动化测试脚本编写并执行。

1. 搭建unittest框架;

2. 引入By方法类;

3. 定义setUp方法启动浏览器,增加3秒的智能等待,将浏览器窗口最大化;

4. 定义tearDown方法关闭浏览器;

5. 定义test_denglu01方法进入系统登录页面,通过NAME方法定位用户名输入框,通过ID方法定位密码输入框并输入账号和密码(XTGLY/123456),通过CLASS_NAME方法定位并点击登录按钮;

6. 定义test_denglu02方法进入系统登录页面,通过NAME方法定位用户名输入框,通过CLASS_NAME方法定位密码输入框并输入账号和密码(XTGLY/123456),通过ID方法定位并点击登录按钮,使用NEME方法定位商品管理页面的查询条件中的商品品牌下拉框,通过Select类中的by_visible_text方法选择商品分类为“测试”;

7. 通过unittest.main()方法执行测试用例。

题目3:按照以下步骤在PyCharm中进行自动化测试脚本编写并执行。

测试数据:

商品品牌名称

预期结果

商品品牌名称必填,请重新输入。

步骤1:新建csv格式的测试数据testdata.csv,并编写csvv.py脚本读取csv中的测试数据。

步骤2:新建test01.py:

1. 引入步骤1中的写好的数据读取的方法以及ddt方法类;

2. 引入By方法类;

3. 搭建unittest框架;

4. 在setUp中打开谷歌浏览器,增加5秒的智能时间等待,将浏览器窗口最大化;

5. 在tearDown中退出浏览器;

6. 新建测试用例,通过CLASS_NAME属性定位用户名输入框,并输入用户名XTGLY;

7. 通过ID属性定位密码输入框,并输入密码123456;

8. 查看登录页面中的登录按钮元素,通过TAG_NAME方法定位登录按钮,使用click()方法点击登录按钮进入系统首页;

9. 通过PARTIAL_LINK_TEXT方法进行定位,使用click()方法点击“商品品牌”按钮;

10. 通过TAG_NAME的复数形式定位并点击“新增”按钮;

11. 通过CLASS_NAME方法定位商品品牌名称输入框并使用数据驱动输入“商品品牌名称”;

12. 通过XPATH方法定位并点击“保存”按钮;

13. 通过CLASS_NAME方法定位并获取提示信息文字,通过assertEqual断言方法来验证预期结果和实际结果是否一致,如果不一致使用get_screenshot_as_file对页面进行截图操作;

14. 通过unittest.main()方法执行测试用例。

题目4:按照以下步骤在PyCharm中进行自动化测试脚本编写并执行。

根据测试用例编写脚本:

 

1. 新建EPR_PO文件夹;

2. 在EPR_PO文件夹下新建driver文件夹和Website文件夹;

3. 在driver文件夹下新建driver.py文件存放浏览器驱动;

4. 在Website文件夹下新建test_case文件夹、test_report文件夹、test_data文件夹;

5. 在test_case文件夹下新建model文件夹和page_object文件夹;

6. 在model文件夹下新建function.py文件封装截图、数据驱动读取等方法;

7. 在model文件夹下新建myunit.py文件封装unittest框架中的Setup(添加5秒的智能等待和浏览器窗口最大化)和tearDown(退出浏览器)等方法;

8. 在test_report文件夹下新建BasePage.py文件封装selenium的基础操作类方法(get、find_element等);

9. 在test_report文件夹下新建LogingPage.py文件,引入BasePage.py中封装好的方法,引入By方法类,封装登录用例页面元素位置和操作(使用CLASS_NAME方法封装用户名输入框,使用NAME方法封装密码输入框、使用ID方法封装登录按钮位置,封装输入用户名、密码、点击登录按钮等操作);

10. 在test_report文件夹下新建AddPage.py文件,引入BasePage.py中封装好的方法,引入By方法类,封装好商品分类添加页面元素(使用PARTIAL_LINK_TEXT方法封装商品分类按钮,使用CSS方法封装新增按钮,使用XPATH方法封装商品分类名称输入框,使用CSS方法封装保存按钮,封装点击商品分类按钮、点击新增按钮、输入商品分类名称、点击保存按钮等操作),封装添加成功以及添加失败的提示信息文字;

11. 在test_report文件夹新建srceenshot文件夹存放测试截图;

12. 在test_data文件夹新建test_csv.csv文件存放测试数据;

13. 在test_report文件夹下新建test_add.py文件,引入unittest、ddt以及之前封装好的model,LoginPage,AddPage中的方法类,根据用例编写6条测试用例脚本,创建data参数来接收测试数据,并使用数据驱动输入用户名和密码(XTGLY/123456),使用数据驱动输入商品分类名称,然后进行截图操作,最后对每一条测试用例进行assertIn断言操作,对比提示信息是否和预期一致;

14. 在Website文件夹下新建run_test.py文件使用discover方法执行test_add.py测试用例并引入HTMLTestRunner方法生成html测试报告(测试报告title名为:Test Report,description内容为erp test)。

二、报告编写

根据自动化测试情况,参考自动化测试报告模版,按要求编写自动化测试脚本并将全部脚本粘贴到模板中,完成自动化测试报告。

任务六 性能测试

一、任务要求

题目1:使用LoadRunner执行性能测试。

1. 脚本录制:

(1)脚本一:

  • 脚本名称:CusAdd。
  • 脚本内容:系统管理员登录、进行新增客户操作。

具体要求如下:

  • 所有脚本存放在Action。客户名称前4位为固定值KHMC,联系人前3位为固定值LXR,固定值后面的字符可任意设置。对新增客户保存操作设置事务,事务名称:T_CusAdd。设置检查点,使用新增客户成功,服务器响应正文内容中的code键值对作为检查点。在新增客户保存操作前添加集合点,集合点名称:R_CusAdd。

截图要求:一共1张图:①Action中新增客户保存操作部分截图。

(2)脚本二:

  • 脚本名称:InveAdd。
  • 脚本内容:仓库主管登录、进行新增盘点单操作。

具体要求如下:

  • 所有脚本存放在Action。仓库任意选择,商品任意选择一种即可。对新增盘点单保存操作设置事务,事务名称:T_InveAdd。设置检查点,使用新增盘点单保存成功,服务器响应正文内容中的code键值对作为检查点。在新增盘点单保存操作前添加集合点,集合点名称:R_InveAdd。

截图要求:一共1张图:①Action中新增盘点单保存操作截图。

2. 脚本回放:使用回放功能对脚本的正确性进行校验。

(1)脚本一脚本回放具体要求如下:

  • 对客户名称进行修改,前4位为固定值KHHF,固定值后面的字符可任意设置。
  • 对联系人进行修改,前4位为固定值LXHF,固定值后面的字符可任意设置。
  • 运行脚本,查看回放结果,要求脚本回放能成功实现新增客户业务。

截图要求:一共1张图:①新增客户保存操作和回放日志截图。

(2)脚本二脚本回放具体要求如下:

  • 运行脚本,查看回放结果,要求脚本回放能成功实现新增盘点单业务。

3. 脚本参数设置要求:脚本回放成功后按要求设置脚本参数。

(1)脚本一参数化具体要求如下:

  • 新建参数:参数名称:letter,参数类型:文件,参数值:26个英文字母小写,每次出现随机取值。
  • 新建参数:参数名称:uniNo,参数类型:唯一编号,编号从1开始,每个Vuser的块大小为200,编号格式:%04d。
  • 对客户名称进行参数化设置:客户名称前4位固定值KHCS,固定值后面接2个随机小写字母和参数uniNo。
  • 对联系人进行参数化设置:联系人前3位固定值LXR,固定值后面接2个随机小写字母和参数uniNo。
  • 对联系电话进行参数化设置:只参数化联系电话的后8位,参数名称:phone,参数类型:随机数字,随机范围:1-9999,数字格式:%08lu,每次迭代更新。
  • 脚本迭代次数3次。

截图要求:一共1张图:①新增客户保存操作和参数列表截图。

(2)脚本二参数化具体要求如下:

  • 对保存操作进行参数化设置:点击保存或者保存并提交按钮。参数名称:status,参数类型:文件,每次迭代顺序取值。
  • 新建参数化文件center.dat,文件中包含centerId字段,centerId输入系统预置的10条仓库id值。
  • 对盘点仓库进行参数化设置:仓库ID使用参数centerId,使用center.dat参数化文件。
  • centerId参数选择列使用按名称方式,每次迭代随机取值。
  • 脚本迭代次数3次。

截图要求:一共1张图:①新增盘点单保存操作和参数列表截图。

4. 场景设置:按要求设置虚拟用户个数以及进行场景配置。

  • 脚本修改:新增客户集合点前添加思考时间30秒,客户名称前4位固定值修改为KHCJ。
  • 脚本修改:新增盘点单集合点前添加思考时间45秒。
  • 选择新增客户和新增盘点单两个脚本进行场景设置。
  • 用户分配选择用户组模式。场景计划方式选择用户组,运行模式选择实际计划。
  • 所有集合点策略:当10个用户到达集合点时释放,超时时间20秒。
  • 全局计划:
    1. 新增客户:场景开始后立即启动组;在每个虚拟用户运行前将其初始化;启动20个用户(每2秒启动1个)执行5分钟,执行完成后停止10个用户(每2秒停止1个)执行5分钟,执行完成后停止所有用户(每2秒停止1个)。
    2. 新增盘点单:在场景开始30秒后启动组;在每个虚拟用户运行前将其初始化;启动10个用户(每2秒启动1个)执行5分钟,执行完成后再启动10个用户(每2秒启动1个)执行5分钟,执行完成后停止所有用户(每2秒停止1个)。

截图要求:一共2张图,分别为:①新增客户场景设计界面截图;②新增盘点单场景设计界面截图。

5. 图形结果分析:场景执行完成后对测试结果进行截图操作。

  • 所有截图均需截取完整的结果图,包含下方的说明和左侧的树形结构。

截图要求:一共1张图:①Total Passed Transactions截图。

题目2:使用JMeter执行性能测试。

1. 脚本添加:

  • 脚本文件名称:PurAndPlan。
  • 测试计划名称:PurAndPlan。

测试计划下添加两个线程组:

(1)线程组一:

  • 线程组名称:PurAdd。
  • 线程组内容:采购专员登录、进行新增采购订单、保存并提交操作。

具体要求如下:

  • 仓库、供应商任意选择,商品任意选择一种即可。采购订单保存操作请求名称:采购订单保存;采购订单提交操作请求名称:采购订单提交。对采购订单保存并提交操作设置事务,事务名称:T_PurAdd。设置检查点,使用提交操作成功服务器的响应正文内容作为检查点,检查点名称Reg_PurAdd。

截图要求:一共1张图:①新增采购订单保存操作截图。

(2)线程组二:

  • 线程组名称:PlanAdd。
  • 线程组内容:生产专员登录、进行新增生产计划单、保存并提交操作。

具体要求如下:

  • 计划生产耗材和计划生产制品新增一行即可,商品任意选择一种。生产计划单保存并提交操作请求名称:保存并提交。对生产计划单保存并提交操作设置事务,事务名称:T_PlanAdd。设置检查点,使用保存并提交操作成功服务器的响应正文内容作为检查点,检查点名称Reg_PlanAdd。在新增生产计划单保存并提交操作前添加集合点,集合点名称:R_PlanAdd。

截图要求:一共1张图:①新增生产计划单保存并提交操作截图。

2. 脚本回放:使用回放功能对脚本的正确性进行校验。

(1)线程组一回放具体要求如下:

  • 运行脚本,查看回放结果,要求脚本回放能成功实现新增采购订单保存并提交业务。
  • 保存并提交操作若需要关联,使用正则表达式提取器,参数名称PurId。

截图要求:一共1张图:①新增采购订单提交操作截图。

(2)线程组二回放具体要求如下:

  • 运行脚本,查看回放结果,要求脚本回放能成功实现新增生产计划单保存并提交业务。

3. 脚本参数设置要求:脚本回放成功后按要求设置脚本参数。

(1)线程组一参数化具体要求如下:

  • 新建参数化文件center.dat,文件中包含centerId、centerName两个字段,centerId输入系统预置的10条仓库id值,centerName输入对应的仓库名称值。
  • 对仓库进行参数化设置:使用CSV数据文件设置实现参数化,使用center.dat文件。仓库ID参数名称:centerId,仓库名称参数名称:centerName。
  • 对采购数量进行参数化设置:使用Random函数实现参数化,范围:200-500。
  • 对实际采购价进行参数化设置:使用Random函数实现参数化,范围:50-100。
  • 脚本迭代次数3次。

截图要求:一共1张图:①新增采购订单保存操作截图。

(2)线程组二参数化具体要求如下:

  • 对计划制品数量进行参数化设置:使用Random函数实现参数化,范围:1000-2000。
  • 新建参数化文件center.dat,文件中包含centerId、centerCode、centerName三个字段,centerId输入系统预置的10条仓库id值,centerCode输入对应的仓库编号值,centerName输入对应的仓库名称值。
  • 对计划生产制品仓库进行参数化设置:使用CSV数据文件设置实现参数化,使用center.dat文件。仓库ID参数名称centerId,仓库编号参数名称centerCode,仓库名称参数名称centerName。
  • 脚本迭代次数3次。

截图要求:一共1张图:①新增生产计划单保存并提交操作截图。

4. 场景设置:按要求设置虚拟用户个数以及进行场景配置。

  • 脚本修改:新增采购订单保存操作前添加思考时间35秒;新增生产计划单保存并提交操作前添加思考时间45秒;其他步骤添加思考时间5秒。
  • 新增生产计划单集合点设置:模拟数量:5,超时时间30秒。
  • 场景配置:
    1. 新增采购订单场景配置:取样器错误后执行动作:继续;线程数:20;Ramp-Up时间:20秒;循环6次。
    2. 新增生产计划单场景配置:取样器错误后执行动作:继续;线程数:15;Ramp-Up时间:15秒;循环6次。
  • 使用非GUI模式运行。

截图要求:一共2张图,分别为:①新增采购订单场景配置截图;②非GUI运行界面截图。

5. 图形结果:分析场景执行完成后对测试结果进行截图操作。

截图要求:一共1张图:①Hits Per Second截图。

二、报告编写

根据性能测试情况,参考性能测试报告模版,按要求截取性能测试过程和结果截图并粘贴到性能测试报告,完成性能测试报告。

任务七 接口测试

一、任务要求

题目1:登录接口脚本编写和执行测试。

1. 登录接口描述如下:

接口功能:提供用户登录功能处理,根据传入的用户名和密码判断登录状态。

接口地址(根据实际系统IP及端口自行替换):

  • http://XX.XX.XX.XX:XXXX/prod-api/auth/login。

请求方式:POST。

请求参数:

参数

必填

类型

说明

username

Ture

Int

用户名

password

Ture

Int

用户密码

roleId

Ture

Int

登录ID(默认1)

响应结果:

  • 登录成功时返回:

{

    "code": 200,

    "msg": xxx,

    "data": {

        "access_token": "xxx",

        "name": xxx,

        "photo": "xxx",

        "expires_in": xxx

    };

  • 登录失败时返回(密码错误):

{

    "msg": "登录密码错误",

    "code": 500

}

  • 登录失败时返回(密码为空):

{

    "msg": "请输入密码",

    "code": 500

}

2. 接口测试要求说明:

  • 在Postman中新建Collections集,测试集命名为Data_Driver;
  • 在测试集Data_Driver下新建data_driver脚本;
  • 在脚本Body中的raw下新建json参数(username、password、roleId)进行传值,其中username、password参数改为变量接收数据驱动中的数据;
  • 新建josn文件保存接口数据驱动测试数据,josn参数名为username、password;用户名和密码数据为:
  • 新建测试用例集Data_Driver,执行Run,在测试集合运行页面设置执行要求,运行次数要求3次,请求间隔时间为500ms,发送请求的data文件导入前面的新建json数据文件;
  • 设置完成执行测试用例集;
  • 截图要求:一共6张图,分别为:①测试用例脚本包含URL和raw中参数相关内容截图;②测试用例集导入json数据后预览数据的截图;③Collection Runner页面的截图;④、⑤、⑥分别截图三条用例的测试报告中Response Body的全部内容。

username

password

XTGLY

123456

XTGLY

123

XTGLY

题目2:新增接口脚本编写和执行测试,并执行脚本。

1. 商品品牌添加接口描述如下:

接口功能:提供商品品牌新增处理。

接口地址(根据实际系统IP及端口自行替换):

  • http://XX.XX.XX.XX:XXXX/prod-api/manager/brand/add。

请求方式:POST。

请求参数:

参数

必填

类型

说明

createBy

Ture

Int

添加id(默认2)

name

Ture

String

商品品牌名称

响应结果:

{"msg": "操作成功","code": 200}

其余均失败。

2. 接口测试要求说明:

  • 在Postman中新建Collections集,测试集命名为Test_Add;
  • 在Test_Add中新建测试用例1,Login脚本;
  • Login脚本URL为:http://XX.XX.XX.XX:XXXX/prod-api/auth/login;
  • Login脚本Json参数为:{"username":"XTGLY","password":"123456","roleId":1};
  • 在Login脚本的Tests中编写代码,将Login接口返回值responseBody转为json字符串并将responseBody中的获取到的access_token的值使用setEnvironmentVariable方法存放到环境变量中,环境变量命名为token;
  • 在Test_Add中新建测试用例2,Add脚本;
  • 将Login中获取的变量token放在Add脚本Authorization界面下的Bearer Token中;
  • 在Environment中新建VARIABLE值为“token”,其他值为空的环境变量,方便用来调试Add脚本;
  • Add脚本URL为:http://XX.XX.XX.XX:XXXX/prod-api/manager/brand/add;
  • Add脚本Json参数为:{"createBy":"2","name":"测试数据"};
  • 在Add脚本的Tests中对执行结果进行断言判断,设置两个断言:①判断响应状态码为200;②使用JSON value check方法判断响应内容中返回的msg参数值中存在“操作成功”字符串;
  • 设置执行测试集Test_Add;
  • 截图要求:一共4张图,分别为:①用例Add的Body界面截图,需要包含接口提交方式和URL以及raw中内容;②用例Add的Authorization界面截图,需要包含接口提交方式和Type以及Token中内容;③用例Add的Tests界面截图;④测试用例集Test_Add执行结果界面截图。

题目3:修改接口脚本编写和执行测试,并执行脚本。

1. 商品品牌修改接口描述如下:

接口功能:提供商品品牌修改处理。

接口地址(根据实际系统IP及端口自行替换):

  • http://XX.XX.XX.XX:XXXX/prod-api/manager/brand/update。

请求方式:PUT。

请求参数:

参数

必填

类型

说明

id

Ture

Int

修改id

name

Ture

String

商品品牌名称

响应结果:

{"msg": "操作成功","code": 200}

其余均失败。

2. 接口测试要求说明:

  • 在Postman中新建Collections集,测试集命名为Test_Revise;
  • 在Test_Revise中新建测试用例1,Login脚本;
  • Login脚本URL为:http://XX.XX.XX.XX:XXXX/prod-api/auth/login;
  • Login脚本Json参数为:{"username":"XTGLY","password":"123456","roleId":1};
  • 在Login脚本的Tests中编写代码,将Login接口返回值responseBody转为json字符串并将responseBody中的获取到的access_token的值使用setEnvironmentVariable方法存放到环境变量中,环境变量命名为token;
  • 在Test_Revise中新建测试用例2,Revise脚本;
  • 将Login中获取的变量token放在Revise脚本Authorization界面下的Bearer Token中;
  • 在Environment中新建VARIABLE值为“token”,其他值为空的环境变量,方便用来调试Revise脚本;
  • Revise脚本URL为:http://XX.XX.XX.XX:XXXX/prod-api/manager/brand/update;
  • Revise脚本Json参数为:{"id":"1","name":"测试"};
  • 在Revise脚本的Tests中对执行结果进行断言判断,设置两个断言:①判断响应状态码为200;②使用JSON value check方法判断响应内容中返回的msg参数值中存在“操作成功”字符串;
  • 设置执行测试集Test_Revise;
  • 截图要求:一共4张图,分别为:①用例Revise的Body界面截图,需要包含接口提交方式和URL以及raw中内容;②用例Revise的Authorization界面截图,需要包含接口提交方式和Type以及Token中内容;③用例Revise的Tests界面截图;④测试用例集Test_Revise执行结果界面截图。

二、报告编写

根据接口测试情况,参考接口测试报告模版,按要求截取接口测试脚本和结果截图并粘贴到接口测试报告中,完成接口测试报告。

おすすめ

転載: blog.csdn.net/weixin_57099902/article/details/131454585