{"id":363872,"date":"2024-05-21T02:05:22","date_gmt":"2024-05-21T02:05:22","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=363872"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-21T02:05:22","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=363872","title":{"rendered":"<span>AI in Postman<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><strong>Welcome!<\/strong><\/p>\n<p>Today, I&#8217;ll showcase ways to streamline your API testing by harnessing AI within Postman. We&#8217;ll begin by addressing the basic questions and setting up the environment.<\/p>\n<h3>What is Postman?<\/h3>\n<p>Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs-faster.<\/p>\n<h3>Setting up the environment.<\/h3>\n<p>To begin, we require some endpoints for testing purposes. To fulfill this requirement, I&#8217;ve set up a dedicated server. If you&#8217;re unfamiliar with\u00a0Docker\u00a0and\u00a0Git, there&#8217;s no need to worry\u2014I&#8217;ve prepared comprehensive instructions on how to install them (<a href=\"https:\/\/Installation%20instruction%20for%20docker\/docker-compose\" rel=\"noopener noreferrer nofollow\">Docker\/docker-compose<\/a> and <a href=\"https:\/\/Installation%20instructions%20for%20git\" rel=\"noopener noreferrer nofollow\">git installation<\/a> guidelines can be found towards the end of the article). Once you have Git and Docker in place, you can proceed next:<\/p>\n<p><abbr class=\"habraabbr\" title=\"\" data-title=\"&lt;p>&lt;\/p>&#187; data-abbr=&#187;Ensure port 8080\u00a0is unoccupied; the application is operational on this port.&#187;>Ensure port 8080\u00a0is unoccupied; the application is operational on this port.<\/abbr><\/p>\n<p>You need to clone a <a href=\"https:\/\/github.com\/PavelMal\/PostmanTesting\" rel=\"noopener noreferrer nofollow\"><strong><u>repo<\/u><\/strong><\/a>:<\/p>\n<ol>\n<li>\n<p>open in terminal (or an equivalent) and run commands:<\/p>\n<ol>\n<li>\n<p>git clone <a href=\"https:\/\/github.com\/PavelMal\/PostmanTesting.git\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/PavelMal\/PostmanTesting.git<\/a><\/p>\n<\/li>\n<li>\n<p>cd PostmanTesting<\/p>\n<\/li>\n<li>\n<p>docker-compose up<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Please wait for approximately 1-2 minutes, and after this time, you should observe a log entry resembling the following:<\/p>\n<pre><code>Starting qa-server ... done Attaching to qa-server \u2026 \u2026 qa-server    | 2023-08-10 05:19:17.741  INFO 1 --- [main] com.test.Application: Started Application in 5.183 seconds (JVM running for 6.1<\/code><\/pre>\n<p>This indicates that the application is now operational. To verify its proper functionality, simply initiate a request to:<\/p>\n<pre><code>http:\/\/localhost:8080\/api\/check  -  Expect a response status code of 200 OK.<\/code><\/pre>\n<p><strong>Your progress is commendable<\/strong>. We have now successfully configured the testing environment<\/p>\n<p>This application offers the capability to generate and retrieve orders (an order being an object comprising three attributes:\u00a0<strong>id<\/strong>,\u00a0<strong>name<\/strong>, and\u00a0<strong>price<\/strong>). Don&#8217;t hesitate to utilize Swagger for this purpose:\u00a0<code>http:\/\/localhost:8080\/swagger-ui.html#\/<\/code>\u00a0(It&#8217;s not in vain that I added it to the project. ?)<\/p>\n<h3>Generate the initial order and tests to verify this functionality<\/h3>\n<p>Let\u2019s move on to the most interesting part &#8212; open the Postman and create your first order<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ce9\/cdd\/a04\/ce9cdda040a41313000214a8ff28a9cc.png\" width=\"2852\" height=\"1444\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ce9\/cdd\/a04\/ce9cdda040a41313000214a8ff28a9cc.png\"\/><\/figure>\n<p><strong>Well done<\/strong>!\u00a0At this point, we can begin creating tests for that specific endpoint. However, before we proceed, consider this: we have an AI assistant at our disposal. Let&#8217;s experiment with its capabilities.<\/p>\n<ol>\n<li>\n<p>Click on \u2018Tests\u2019 tab<\/p>\n<\/li>\n<li>\n<p>Click on AI assistant button<\/p>\n<\/li>\n<li>\n<p>Write \u2018Add tests to this request\u2019 and submit it<\/p>\n<\/li>\n<\/ol>\n<p>You\u2019ve got your first set of tests including checking response time.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b8b\/84f\/689\/b8b84f689c6cf7c1dc8461fd20fc2021.gif\" width=\"800\" height=\"552\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b8b\/84f\/689\/b8b84f689c6cf7c1dc8461fd20fc2021.gif\"\/><\/figure>\n<p>Try other prompts such as:<\/p>\n<ul>\n<li>\n<p>Test for response content type<\/p>\n<\/li>\n<li>\n<p>Test for response schema<\/p>\n<\/li>\n<li>\n<p>Test for response data length<\/p>\n<\/li>\n<li>\n<p>Test for response time within acceptable range<\/p>\n<\/li>\n<\/ul>\n<h3>Validation of error message<\/h3>\n<p>Let&#8217;s proceed to create tests for the validation of error messages. In Postman, input a price of 0 and initiate a request. This action should result in a response code of 400 along with the following message:<\/p>\n<pre><code>\"message\": \"Price can't be less than or equal to 0\".<\/code><\/pre>\n<p>Leverage the AI assistant to compose a script:<\/p>\n<pre><code>response message should be \"message\": \"Price can't be less or equal than 0\"<\/code><\/pre>\n<p>You now possess two tests designed to check the 400 status code and verify the error message.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b99\/e42\/82e\/b99e4282ee7e445bfb6496472e0470fe.png\" width=\"2808\" height=\"1578\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b99\/e42\/82e\/b99e4282ee7e445bfb6496472e0470fe.png\"\/><\/figure>\n<p><strong>Great job!<\/strong><\/p>\n<p>I&#8217;ve included the logic to check the name\/price\/ID body parameters. Your task is to identify all possible scenarios and harness AI assistance to generate the corresponding tests.<\/p>\n<h3>Visualize response<\/h3>\n<p>Another valuable feature is response visualization. Let&#8217;s explore it together. Type &#8216;Visualize response as table&#8217; and see the magic<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2e3\/bd8\/6c1\/2e3bd86c19a35eb2e9a53f7d6ddf90e2.gif\" width=\"800\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2e3\/bd8\/6c1\/2e3bd86c19a35eb2e9a53f7d6ddf90e2.gif\"\/><\/figure>\n<h3>Postman collections<\/h3>\n<p>Last but not least, do not underestimate the value of utilizing collections, as this will enable your tests to maintain a structured framework. By employing collections, you can effortlessly oversee API requests alongside sets of tests.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/abb\/9ff\/e23\/abb9ffe23ba3aab84f485011818b773c.gif\" width=\"800\" height=\"479\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/abb\/9ff\/e23\/abb9ffe23ba3aab84f485011818b773c.gif\"\/><\/figure>\n<p>I appreciate your attention! You are now prepared to harness AI for your API testing needs (Furthermore, you have acquired the fundamentals of Docker and Git).<\/p>\n<p><strong>Would greatly appreciate it if you could star my\u00a0<\/strong><a href=\"https:\/\/github.com\/PavelMal\/PostmanTesting\" rel=\"noopener noreferrer nofollow\"><strong>project<\/strong><\/a><strong>.<\/strong><\/p>\n<hr\/>\n<h2>Installation instructions for git<\/h2>\n<p><a class=\"anchor\" name=\"Installation%20instructions%20for%20git\" id=\"Installation instructions for git\"><\/a><\/p>\n<h3>Ubuntu:<\/h3>\n<p>Open a terminal.<\/p>\n<ul>\n<li>\n<p>Run the following command to install Git:<\/p>\n<ul>\n<li>\n<p><code>sudo apt update<\/code><\/p>\n<\/li>\n<li>\n<p><code>sudo apt install git<\/code><\/p>\n<\/li>\n<\/ul>\n<p>Once the installation is complete, verify it by typing:<\/p>\n<ul>\n<li>\n<p><code>git --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>macOS:<\/h3>\n<ul>\n<li>\n<p>Git is usually pre-installed on macOS. However, you can ensure you have the latest version by opening a terminal and typing:<\/p>\n<ul>\n<li>\n<p><code>git --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>If Git is not installed or you want to update it, you can install it using\u00a0<a href=\"https:\/\/brew.sh\" rel=\"noopener noreferrer nofollow\">Homebrew<\/a>\u00a0(a popular package manager for macOS):<\/p>\n<ul>\n<li>\n<p><code>\/bin\/bash -c \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh)\"<\/code><\/p>\n<\/li>\n<li>\n<p><code>brew install git<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Windows:<\/h3>\n<ul>\n<li>\n<p>Download the Git installer for Windows from the official Git website:<a href=\"https:\/\/git-scm.com\/download\/win\" rel=\"noopener noreferrer nofollow\">\u00a0Git for Windows<\/a><\/p>\n<\/li>\n<li>\n<p>Run the installer and follow the on-screen instructions. You can usually leave the default settings as they are.<\/p>\n<\/li>\n<li>\n<p>During the installation, you&#8217;ll be asked to choose a default text editor and adjust line ending conversions. You can stick with the default options or make changes according to your preferences.<\/p>\n<\/li>\n<li>\n<p>After the installation is complete, open a Command Prompt or Git Bash (included with Git for Windows) and verify Git by typing:<\/p>\n<ul>\n<li>\n<p><code>git --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr\/>\n<h2>Installation instruction for docker\/docker-compose<\/h2>\n<p><a class=\"anchor\" name=\"Installation%20instruction%20for%20docker\/docker-compose\" id=\"Installation instruction for docker\/docker-compose\"><\/a><\/p>\n<h3>Ubuntu:<\/h3>\n<ul>\n<li>\n<p>Install Docker: <br \/>Open a terminal and run the following commands:<\/p>\n<\/li>\n<\/ul>\n<p><code>sudo apt update<\/code><\/p>\n<p><code>sudo apt install -y docker.io<\/code><\/p>\n<ul>\n<li>\n<p>After the installation is complete, start and enable the Docker service:<\/p>\n<\/li>\n<\/ul>\n<p><code>sudo systemctl start docker<\/code><\/p>\n<p><code>sudo systemctl enable docker<\/code><\/p>\n<ul>\n<li>\n<p>Install Docker Compose:<br \/>Run the following commands to download the latest version of Docker Compose:<\/p>\n<ul>\n<li>\n<p><code>sudo curl -L \"https:\/\/github.com\/docker\/compose\/releases\/latest\/download\/docker-compose-<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(uname -s)-\" alt=\"(uname -s)-\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/84c\/d18\/6c4\/84cd186c43a8938a7b1c176b4f6057f6.svg\" width=\"128\" height=\"24\"\/>(uname -m)\" -o \/usr\/local\/bin\/docker-compose<\/code><\/p>\n<\/li>\n<li>\n<p><code>sudo chmod +x \/usr\/local\/bin\/docker-compose<\/code><\/p>\n<\/li>\n<\/ul>\n<p>Verify the installation:<\/p>\n<ul>\n<li>\n<p><code>docker-compose --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>macOS:<\/h3>\n<ul>\n<li>\n<p>Install Docker Desktop:<br \/>Download Docker Desktop from the official website and follow the installation instructions.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.docker.com\/products\/docker-desktop\" rel=\"noopener noreferrer nofollow\">Docker Desktop for Mac<\/a> <br \/>Docker Desktop includes both Docker and Docker Compose.<br \/>Open a terminal and verify that Docker and Docker Compose are installed:<\/p>\n<\/p>\n<ul>\n<li>\n<p><code>docker --version<\/code><\/p>\n<\/li>\n<li>\n<p><code>docker-compose --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Windows:<\/h3>\n<ul>\n<li>\n<p>Install Docker Desktop:<br \/>Download Docker Desktop from the official website and follow the installation instructions.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.docker.com\/products\/docker-desktop\" rel=\"noopener noreferrer nofollow\">Docker Desktop for Windows<\/a> <br \/>Docker Desktop includes both Docker and Docker Compose.<br \/>Open a Command Prompt or PowerShell window and verify that Docker and Docker Compose are installed:<\/p>\n<\/p>\n<ul>\n<li>\n<p><code>docker --version<\/code><\/p>\n<\/li>\n<li>\n<p><code>docker-compose --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/782864\/\"> https:\/\/habr.com\/ru\/articles\/782864\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><strong>Welcome!<\/strong><\/p>\n<p>Today, I&#8217;ll showcase ways to streamline your API testing by harnessing AI within Postman. We&#8217;ll begin by addressing the basic questions and setting up the environment.<\/p>\n<h3>What is Postman?<\/h3>\n<p>Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs-faster.<\/p>\n<h3>Setting up the environment.<\/h3>\n<p>To begin, we require some endpoints for testing purposes. To fulfill this requirement, I&#8217;ve set up a dedicated server. If you&#8217;re unfamiliar with\u00a0Docker\u00a0and\u00a0Git, there&#8217;s no need to worry\u2014I&#8217;ve prepared comprehensive instructions on how to install them (<a href=\"https:\/\/Installation%20instruction%20for%20docker\/docker-compose\" rel=\"noopener noreferrer nofollow\">Docker\/docker-compose<\/a> and <a href=\"https:\/\/Installation%20instructions%20for%20git\" rel=\"noopener noreferrer nofollow\">git installation<\/a> guidelines can be found towards the end of the article). Once you have Git and Docker in place, you can proceed next:<\/p>\n<p><abbr class=\"habraabbr\" title=\"\" data-title=\"&lt;p>&lt;\/p>&#187; data-abbr=&#187;Ensure port 8080\u00a0is unoccupied; the application is operational on this port.&#187;>Ensure port 8080\u00a0is unoccupied; the application is operational on this port.<\/abbr><\/p>\n<p>You need to clone a <a href=\"https:\/\/github.com\/PavelMal\/PostmanTesting\" rel=\"noopener noreferrer nofollow\"><strong><u>repo<\/u><\/strong><\/a>:<\/p>\n<ol>\n<li>\n<p>open in terminal (or an equivalent) and run commands:<\/p>\n<ol>\n<li>\n<p>git clone <a href=\"https:\/\/github.com\/PavelMal\/PostmanTesting.git\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/PavelMal\/PostmanTesting.git<\/a><\/p>\n<\/li>\n<li>\n<p>cd PostmanTesting<\/p>\n<\/li>\n<li>\n<p>docker-compose up<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Please wait for approximately 1-2 minutes, and after this time, you should observe a log entry resembling the following:<\/p>\n<pre><code>Starting qa-server ... done Attaching to qa-server \u2026 \u2026 qa-server    | 2023-08-10 05:19:17.741  INFO 1 --- [main] com.test.Application: Started Application in 5.183 seconds (JVM running for 6.1<\/code><\/pre>\n<p>This indicates that the application is now operational. To verify its proper functionality, simply initiate a request to:<\/p>\n<pre><code>http:\/\/localhost:8080\/api\/check  -  Expect a response status code of 200 OK.<\/code><\/pre>\n<p><strong>Your progress is commendable<\/strong>. We have now successfully configured the testing environment<\/p>\n<p>This application offers the capability to generate and retrieve orders (an order being an object comprising three attributes:\u00a0<strong>id<\/strong>,\u00a0<strong>name<\/strong>, and\u00a0<strong>price<\/strong>). Don&#8217;t hesitate to utilize Swagger for this purpose:\u00a0<code>http:\/\/localhost:8080\/swagger-ui.html#\/<\/code>\u00a0(It&#8217;s not in vain that I added it to the project. ?)<\/p>\n<h3>Generate the initial order and tests to verify this functionality<\/h3>\n<p>Let\u2019s move on to the most interesting part &#8212; open the Postman and create your first order<\/p>\n<figure class=\"full-width\"><\/figure>\n<p><strong>Well done<\/strong>!\u00a0At this point, we can begin creating tests for that specific endpoint. However, before we proceed, consider this: we have an AI assistant at our disposal. Let&#8217;s experiment with its capabilities.<\/p>\n<ol>\n<li>\n<p>Click on \u2018Tests\u2019 tab<\/p>\n<\/li>\n<li>\n<p>Click on AI assistant button<\/p>\n<\/li>\n<li>\n<p>Write \u2018Add tests to this request\u2019 and submit it<\/p>\n<\/li>\n<\/ol>\n<p>You\u2019ve got your first set of tests including checking response time.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>Try other prompts such as:<\/p>\n<ul>\n<li>\n<p>Test for response content type<\/p>\n<\/li>\n<li>\n<p>Test for response schema<\/p>\n<\/li>\n<li>\n<p>Test for response data length<\/p>\n<\/li>\n<li>\n<p>Test for response time within acceptable range<\/p>\n<\/li>\n<\/ul>\n<h3>Validation of error message<\/h3>\n<p>Let&#8217;s proceed to create tests for the validation of error messages. In Postman, input a price of 0 and initiate a request. This action should result in a response code of 400 along with the following message:<\/p>\n<pre><code>\"message\": \"Price can't be less than or equal to 0\".<\/code><\/pre>\n<p>Leverage the AI assistant to compose a script:<\/p>\n<pre><code>response message should be \"message\": \"Price can't be less or equal than 0\"<\/code><\/pre>\n<p>You now possess two tests designed to check the 400 status code and verify the error message.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p><strong>Great job!<\/strong><\/p>\n<p>I&#8217;ve included the logic to check the name\/price\/ID body parameters. Your task is to identify all possible scenarios and harness AI assistance to generate the corresponding tests.<\/p>\n<h3>Visualize response<\/h3>\n<p>Another valuable feature is response visualization. Let&#8217;s explore it together. Type &#8216;Visualize response as table&#8217; and see the magic<\/p>\n<figure class=\"full-width\"><\/figure>\n<h3>Postman collections<\/h3>\n<p>Last but not least, do not underestimate the value of utilizing collections, as this will enable your tests to maintain a structured framework. By employing collections, you can effortlessly oversee API requests alongside sets of tests.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>I appreciate your attention! You are now prepared to harness AI for your API testing needs (Furthermore, you have acquired the fundamentals of Docker and Git).<\/p>\n<p><strong>Would greatly appreciate it if you could star my\u00a0<\/strong><a href=\"https:\/\/github.com\/PavelMal\/PostmanTesting\" rel=\"noopener noreferrer nofollow\"><strong>project<\/strong><\/a><strong>.<\/strong><\/p>\n<hr\/>\n<h2>Installation instructions for git<\/h2>\n<p><a class=\"anchor\" name=\"Installation%20instructions%20for%20git\" id=\"Installation instructions for git\"><\/a><\/p>\n<h3>Ubuntu:<\/h3>\n<p>Open a terminal.<\/p>\n<ul>\n<li>\n<p>Run the following command to install Git:<\/p>\n<ul>\n<li>\n<p><code>sudo apt update<\/code><\/p>\n<\/li>\n<li>\n<p><code>sudo apt install git<\/code><\/p>\n<\/li>\n<\/ul>\n<p>Once the installation is complete, verify it by typing:<\/p>\n<ul>\n<li>\n<p><code>git --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>macOS:<\/h3>\n<ul>\n<li>\n<p>Git is usually pre-installed on macOS. However, you can ensure you have the latest version by opening a terminal and typing:<\/p>\n<ul>\n<li>\n<p><code>git --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>If Git is not installed or you want to update it, you can install it using\u00a0<a href=\"https:\/\/brew.sh\" rel=\"noopener noreferrer nofollow\">Homebrew<\/a>\u00a0(a popular package manager for macOS):<\/p>\n<ul>\n<li>\n<p><code>\/bin\/bash -c \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh)\"<\/code><\/p>\n<\/li>\n<li>\n<p><code>brew install git<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Windows:<\/h3>\n<ul>\n<li>\n<p>Download the Git installer for Windows from the official Git website:<a href=\"https:\/\/git-scm.com\/download\/win\" rel=\"noopener noreferrer nofollow\">\u00a0Git for Windows<\/a><\/p>\n<\/li>\n<li>\n<p>Run the installer and follow the on-screen instructions. You can usually leave the default settings as they are.<\/p>\n<\/li>\n<li>\n<p>During the installation, you&#8217;ll be asked to choose a default text editor and adjust line ending conversions. You can stick with the default options or make changes according to your preferences.<\/p>\n<\/li>\n<li>\n<p>After the installation is complete, open a Command Prompt or Git Bash (included with Git for Windows) and verify Git by typing:<\/p>\n<ul>\n<li>\n<p><code>git --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr\/>\n<h2>Installation instruction for docker\/docker-compose<\/h2>\n<p><a class=\"anchor\" name=\"Installation%20instruction%20for%20docker\/docker-compose\" id=\"Installation instruction for docker\/docker-compose\"><\/a><\/p>\n<h3>Ubuntu:<\/h3>\n<ul>\n<li>\n<p>Install Docker: <br \/>Open a terminal and run the following commands:<\/p>\n<\/li>\n<\/ul>\n<p><code>sudo apt update<\/code><\/p>\n<p><code>sudo apt install -y docker.io<\/code><\/p>\n<ul>\n<li>\n<p>After the installation is complete, start and enable the Docker service:<\/p>\n<\/li>\n<\/ul>\n<p><code>sudo systemctl start docker<\/code><\/p>\n<p><code>sudo systemctl enable docker<\/code><\/p>\n<ul>\n<li>\n<p>Install Docker Compose:<br \/>Run the following commands to download the latest version of Docker Compose:<\/p>\n<ul>\n<li>\n<p><code>sudo curl -L \"https:\/\/github.com\/docker\/compose\/releases\/latest\/download\/docker-compose-(uname -m)\" -o \/usr\/local\/bin\/docker-compose<\/code><\/p>\n<\/li>\n<li>\n<p><code>sudo chmod +x \/usr\/local\/bin\/docker-compose<\/code><\/p>\n<\/li>\n<\/ul>\n<p>Verify the installation:<\/p>\n<ul>\n<li>\n<p><code>docker-compose --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>macOS:<\/h3>\n<ul>\n<li>\n<p>Install Docker Desktop:<br \/>Download Docker Desktop from the official website and follow the installation instructions.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.docker.com\/products\/docker-desktop\" rel=\"noopener noreferrer nofollow\">Docker Desktop for Mac<\/a> <br \/>Docker Desktop includes both Docker and Docker Compose.<br \/>Open a terminal and verify that Docker and Docker Compose are installed:<\/p>\n<\/p>\n<ul>\n<li>\n<p><code>docker --version<\/code><\/p>\n<\/li>\n<li>\n<p><code>docker-compose --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Windows:<\/h3>\n<ul>\n<li>\n<p>Install Docker Desktop:<br \/>Download Docker Desktop from the official website and follow the installation instructions.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.docker.com\/products\/docker-desktop\" rel=\"noopener noreferrer nofollow\">Docker Desktop for Windows<\/a> <br \/>Docker Desktop includes both Docker and Docker Compose.<br \/>Open a Command Prompt or PowerShell window and verify that Docker and Docker Compose are installed:<\/p>\n<\/p>\n<ul>\n<li>\n<p><code>docker --version<\/code><\/p>\n<\/li>\n<li>\n<p><code>docker-compose --version<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/782864\/\"> https:\/\/habr.com\/ru\/articles\/782864\/<\/a><br \/><\/br><\/br><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-363872","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/363872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=363872"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/363872\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=363872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=363872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=363872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}