[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"post:postman-using-newman":3},{"id":4,"documentId":5,"title":6,"desc":7,"content":8,"image":9,"imageCard":9,"imageBackground":10,"slug":11,"publishedAt":12,"baseUrl":13,"tags":14,"writer":30,"editors":39,"organization":10,"vars":40},725,"okj7ixat77gokkyjoi5l73m9","استفاده از Newman در Postman","Newman یک ابزار خط فرمان است که توسط Postman ارائه شده است و به شما امکان می‌دهد تا مجموعه‌ای از تست‌های API را به صورت خودکار اجرا کنید. همچنین می‌توانید خروجی‌های تست را به صورت HTML یا CSV دریافت و به راحتی با سیستم‌های CI\u002FCD خود ادغام کنید.","امروزه در بسیاری از شرکت‌های بزرگ روند تولید و استقرار یک نرم‌افزار به صورت خودکار و با استفاده از ادغام پیوسته (Continuous Integration) انجام می‌شود. در این فرایند پس از ادغام کدها با repository اصلی تست‌ها به صورت خودکار اجرا می‌شوند تا در زمان کوتاه محصول نرم‌افزاری اعتبارسنجی شود و تمام باگ‌ها و مشکلات  پیدا و برطرف شوند. ابزارهای مختلفی برای انجام این عمل در دسترس است که یکی از محبوب‌ترین آن‌ها ‌‌Jenkins می‌باشد. پیش از این نحوه‌ی ایجاد تست‌های خودکار و اجرای آن‌ها در ابزار پستمن (Postman) را آموختیم. اما برای اجرای تست‌ها در ادغام پیوسته باید آنها را به صورت command line اجرا کنیم. برای این کار از ابزاری به نام نیومن (Newman) استفاده می‌کنیم. \n## نیومن چیست؟\nنیومن (Newman) ابزاری رایگان و متن باز است که امکان اجرای مجموعه تست‌های پستمن به صورت command line را فراهم می‌کند. در وبسایت رسمی پستمن، نیومن به عنوان یک command-line collection runner برای پستمن توصیف شده است. \nنیومن به شما این امکان را می‌دهد که مجموعه‌ها (Collections) را مشابه collection runner موجود در پستمن اجرا کنید. این ابزار به راحتی با CI ادغام می‌شود و توسعه دهندگان سیستم پس از هر بار تغییر کد بازخورد سریعی درمورد عملکرد APIها دریافت می‌کنند. پس از این‌که تغییراتی در کد اعمال شده و با repository اصلی ادغام شود، CI مجموعه تست‌ها را توسط نیومن اجرا خواهد کرد. \nتفاوت های اصلی نیومن و collection runner به صورت زیر است:\n* نیومن یک افزونه برای پستمن است که باید به صورت مجزا نصب شود.\n* نیومن از command line استفاده می‌کند در حالی که collection runner محیط گرافیکی دارد.\n* نیومن را می‌توان در فرایند CI استفاده کرد.\n## نصب و راه اندازی نیومن \nبرای نصب نیومن باید مراحل زیر انجام شوند:\n### 1. نصب NodeJS و npm\n Node.js یک محیط اجرایی برای اجرای برنامه‌های JavaScript در سمت سرور است. نیومن ابزاری بر پایه NodeJS می‌باشد و برای نصب آن باید از npm که وظبفه آن مدیریت بسته‌های NodeJS است استفاده شود. بنابراین، برای نصب و راه‌اندازی نیومن نیاز دارید Node.js و npm را روی سیستم خود نصب کنید. \nجهت نصب Node.js به سایت رسمی آن [NodeJS](https:\u002F\u002Fnodejs.org) مراجعه کنید و نسخه‌ای از Node.js که با سیستم عامل شما سازگار است، دانلود و نصب کنید. پس از نصب با استفاده از دستور node -v در comand prompt میتوان از نصب بودن آن اطمینان حاصل کرد. در صورت نمایش ورژن، نصب موفقیت آمیز بوده است.\n\n\n\n![Node installation Check](.\u002Fresources\u002Fnode-check-istallment.png?raw=true \"Node installation Check\")\n\n\nپس از نصب و پیکربندی NodeJS باید از نصب بودن npm اطمینان حاصل کنیم. npm  یا node package manager بستری برای مدیریت پکیج های جاوااسکریپت است. به عبارت دیگر npm این امکان را به برنامه نویسان می‌دهد که پکیج‌های خود را در اختیار سایر برنامه نویسان قرار دهند و یا از پکیج‌های دیگران استفاده کنند. پس از نصب npm،  NodeJS به صورت خودکار نصب خواهد شد. برای اطمینان از نصب صحیح آن میتوان  دستور npm -v را در ترمینال اجرا نمود.\n\n\n![NPM installation Check](.\u002Fresources\u002Fnpm-check-istallment.png?raw=true \"NPM installation Check\")\n\n### 2. نصب نیومن با استفاده از npm\nبعد از نصب  NodeJS و npm ، می‌توانیم با استفاده از دستور زیر نیومن را نصب کنیم:\n```\nnpm install -g newman\n```\n\n![Installing Newman](.\u002Fresources\u002Finstalling-newman.png?raw=true \"Installing Newman\")\n\n\nپس از نصب نیومن با استفاده از دستور `newman -v` از موفقیت آمیز بودن فرایند نصب اطمینان حاصل کنید. همان طور که در تصویر زیر مشاهده می‌کنید باید ورژن نیومن نمایش داده شود.\n\n![Newman installation Check](.\u002Fresources\u002Fnewman-check-installment.png?raw=true \"Newman installation Check\")\n\n## اجرای تست‌ها با استفاده از نیومن \n### اجرای مجموعه‌ها توسط نیومن\nپس از نصب نیومن، جهت اجرای تست‌ها به وسیله آن باید از مجموعه (collection) و متغیرهای (Environment) موجود در پستمن export بگیریم. \nبه عنوان مثال درخواست دریافت لیست آگهی‌های املاک در سایت دیوار را در نظر بگیرید.\nابتدا در پستمن مجموعه‌ای ایجاد کرده و درون آن درخواست مورد نظر را می‌سازیم. \n\n\n![Create Request](.\u002Fresources\u002Frequest.png?raw=true \"Create Request\")\n\nجهت export گرفتن از مجموعه موجود ابتدا روی سه نقطه کنار آن کلیک کرده و گزینه export را انتخاب نمایید. در صفحه نمایش داده شده دو یا سه گزینه را مشاهده خواهید کرد (بسته به نسخه پستمن شما). برای این آموزش ما از پستمن نسخه 10.11.1 استفاده می‌کنیم. گزینه Collection v2.1 که گزینه پیشنهادی پستمن نیز می‌باشد را انتخاب کرده و روی Export را کلیک کنید.\n\n![Export Collection Step 1](.\u002Fresources\u002Fexport-collection1.png?raw=true \"Export Collection Step 1\")\n\n![Export Collection Step 2](.\u002Fresources\u002Fexport-collection2.png?raw=true \"Export Collection Step 2\")\n\nسپس مسیر مورد نظر خود برای ذخیره فایل JSON را مشخص نموده و آن را ذخیره کنید.\nاز آنجایی که در درخواست ایجاد شده از متغیر استفاده کردیم برای اجرای مجموعه توسط نیومن باید از متغیرها نیز export بگیریم. برای export گرفتن از متغیرها طبق مراحل زیر پیش می‌رویم:\n1. روی باتن کنار آن کلیک و گزینه edit را انتخاب می‌کنیم. \n\n![Export Environment Step 1](.\u002Fresources\u002Fexport-environment1.png?raw=true \"Export Environment Step 1\")\n\n2. سپس باتن سه نقطه را انتخاب کرده و روی گزینه export کلیک می‌کنیم. \n\n![Export Environment Step 2](.\u002Fresources\u002Fexport-environment2.png?raw=true \"Export Environment Step 2\")\n\n3. مسیر ذخیره سازی آن را مشخص نموده و فایل را ذخیره می‌کنیم.\nپس از ذخیره فایل‌ها در command prompt دایرکتوری جاری را به دایرکتوری که فایل‌های مریوطه را در آن ذخیره کردید تغییر دهید. سپس با استفاده از دستور زیر فایل مربوط به مجموعه را توسط نیومن اجرا نمایید.\n```\nnewman run \u003Cname of the collection file> -e \u003Cname of the environment file>\nnewman run \"Newman Test Collection.postman_collection.json\" -e \"Divar Environment.postman_environment.json\"  \n```\n\n![Run Collection Using Newman](.\u002Fresources\u002Fnewman-run-collection.png?raw=true \"Run Collection Using Newman\")\n\nبا اجرای دستور بالا نتایج اجرا به صورت زیر در خروجی نمایش داده خواهد شد.\n\n![Newman Result](.\u002Fresources\u002Fnewman-result.png?raw=true \"Newman Result\")\n\n### اجرای assertion در نیومن\ncollection runner نیومن کاملا مشابه postman collection runner در اجرای مجموعه‌ها می‌باشد و از آنجایی که درخواست‌های پستمن می‌توانند حاوی assertionهای متفاوتی باشند، assertionها در زمانی که اجرای درخواست تکمیل می‌شود، ارزیابی شده و خلاصه اجرای آن‌ها در پایان اجرای تست نمایش داده می‌شود. با افزودن تاییدیه زیر به درخواست موجود و اجرای مجدد آن نتیجه تست به صورت زیر می‌باشد.\n\n![Assertion](.\u002Fresources\u002Fassertion.png?raw=true \"Assertion\")\n\n![Newman Assertion Result](.\u002Fresources\u002Fnewman-assertion-result.png?raw=true \"Newman Assertion Result\")\n\n### تولید گزارش به وسیله نیومن\n\nتا اینجا می‌دانیم که نیومن می‌تواند مجموعه‌های پستمن را از طریق command line اجرا کرده و گزارش‌هایی را به صورت log نمایش دهد. گاهی اوقات نیاز است تا گزارش‌های موجود را به اشتراک بگذاریم. نیومن قادر است گزارش تست را در قالب html و یا JSON تولید کند. ماژول‌های NodeJS مجزایی جهت تولید این گزارش‌ها موجود می‌باشند که می‌توان با استفاده از دستور زیر آن‌ها را نصب نمود:\n\n```\nnpm install -g newman-reporter-html\n```\n\n![HTML Reporter](.\u002Fresources\u002Fhtml-reporter.png?raw=true \"HTML Reporter\")\n\nپس از نصب ماژول مورد نظر با استفاده از دستور زیر می‌توان این گزارش را تولید کرد:\n```\nnewman run \u003Cname of the collection file> -e \u003Cname of the environment file> -r html\n```\n\n![HTML Report](.\u002Fresources\u002Fhtml-report.png?raw=true \"HTML Report\")\n\nپس از اجرای این دستور فایلی در دایرکتوری جاری ایجاد می‌شود که به صورت زیر است: \nبخش 1: خلاصه اجرا تست\nبخش 2: جزئیات مربوط به هر درخواست به صورت مجزا\n\n![HTML Result](.\u002Fresources\u002Fhtml-result.png?raw=true \"HTML Result\")\n\n\nبا تغییر دستور فوق و استفاده از json به جای پارامتر html خروجی به صورت json تولید می‌شود.\n","https:\u002F\u002Fraw.githubusercontent.com\u002Fgazmeh-site\u002Fposts\u002Frefs\u002Fheads\u002Fmain\u002Ffa\u002Fpostman\u002Fusing-newman\u002Fresources\u002FimageCover.png?raw=true",null,"postman-using-newman","2025-12-11T14:57:11.559Z","https:\u002F\u002Fraw.githubusercontent.com\u002Fgazmeh-site\u002Fposts\u002Fmain\u002Ffa\u002Fpostman\u002Fusing-newman\u002F",[15,20,25],{"id":16,"documentId":17,"name":18,"localeName":19},12,"stv6sloupdtgu31qhqusejoq","postman","پست‌من",{"id":21,"documentId":22,"name":23,"localeName":24},4,"szefdrf8dqsu6ul557hbcizz","automation","خودکارسازی",{"id":26,"documentId":27,"name":28,"localeName":29},15,"fq1gxa8hha4wvl6ubvuru8tb","api test","تست API",{"id":31,"documentId":32,"username":33,"displayName":34,"avatar":35},3,"wuxrnwziwttlhjwserl0eqq4","bahar","بهار",{"id":36,"documentId":37,"url":38},8,"k096cfedj2hppwgfrcbmchai","\u002Fuploads\u002Farabi_resize_1d530af3a2.jpg",[],{"SITE_URL":41,"PAGES_URL":42,"POSTS_URL":43},"https:\u002F\u002Fgazmeh.ir\u002Ffa","https:\u002F\u002Fgazmeh.ir\u002Ffa\u002Fpages","https:\u002F\u002Fgazmeh.ir\u002Ffa\u002Fposts"]