تم إطلاق المشروع لإجراء اختبارات القبول

مرحبًا بالجميع ، لدي اليوم أخبار سارة : الإصدار التجريبي من AT2k ، وهو مشروع لإدارة وتشغيل اختبارات القبول لخدمات الويب ، قد انتهى . دعنا نلقي نظرة على ميزاته الرئيسية ، والتي يمكنك أيضًا التحقق منها هنا .



المقدمة



AT2K هو مشروع مفتوح المصدر مكتوب بلغة Golang (للغة الخلفية) و Angular (من جانب العميل). الفكرة الرئيسية والهدف هو السماح للمستخدمين (المبرمجين ، ومهندسي ضمان الجودة ، وربما المديرين) لكتابة الاختبارات وتشغيلها بلغة قريبة من مجال تخصصهم.



زوجان من الأمثلة



قبل أن نبدأ في النظر إلى واجهة المستخدم والخيارات المختلفة لتخصيص الاختبارات ، دعني أعرض لك مثالاً على خدمة من المفترض أن يتم اختبارها واختبارها مباشرةً.



إذن ، تنفيذ الخدمة (node.js):



import express from 'express';
import uuid4 from 'uuid4';

const app = express();
const users = express.Router();
const port = process.env.PORT || 4444;
let usersRepository = [];

app.use(express.json());
app.use('/api/v1/user', users);

function resetRepository() {
  usersRepository = [
    {hash: uuid4(), name: 'John'},
    {hash: uuid4(), name: 'Nick'}
  ];
}

users.get('/:hash', (req, res) => {
  const user = usersRepository.find(u => u.hash === req.params.hash);

  if (user) {
    res.status(200).send({
      status: 'ok',
      data: user
    });
  } else {
    res.status(200).send({
      status: 'error',
      data: 'user-not-found'
    });
  }
});

users.post('/', (req, res) => {
  const { name } = req.body;
  const hash = uuid4();

  usersRepository.push({
    hash, name
  });
  res.status(200).send({status: 'ok', hash});
});

app.listen(port, () => {
  resetRepository();
  console.log(`Stub AT2K is available on localhost:${port}`);
});


بدون مزيد من اللغط ، إليك بعض الاختبارات:



BEGIN
    createUserResponse = CREATE USER {"name": "Joe"}

    ASSERT createUserResponse.status EQUALS ok

    userResponse = GET USER ${createUserResponse.hash}

    ASSERT userResponse.status EQUALS ok
    ASSERT userResponse.data.name EQUALS Joe
    ASSERT userResponse.data.hash EQUALS ${createUserResponse.hash}
END

BEGIN
    userResponse = GET USER not-exists-hash

    ASSERT userResponse.status EQUALS error
    ASSERT userResponse.data EQUALS user-not-found
END


كما ترى ، كل شيء بسيط جدًا.



من أين نبدأ



للبدء ، نحتاج إلى إنشاء حساب باتباع الرابط وإدخال اسم المستخدم وكلمة المرور اللذين نريد استخدامهما.



.



, ,

- ( ):



صورة



, ,

, :



BEGIN
  createUserResponse = CREATE USER {"name": "Joe"}
END




  • createUserResponse – ,

  • CREATE –
  • USER – ,
  • {"name": "Joe"} –


, -



  1. ,




, . Create object :



صورة



. USER.



, Create, :



صورة



, 2 – GET CREATE. GET. (. ) :



صورة



Add command , :



صورة



Create ( , .. ).



CREATE:



صورة



, :



صورة



صورة



.



-



-. , ngrok.



node.js:



mkdir at2k-stub && cd at2k-stub
npm init -y
npm i express uuid4
touch index.js


index.js



node .


ngrok, - :



ngrok http 4444


http://56dd9be41097.ngrok.io



, , , . , General settings Base URLs. Base URL http://56dd9be41097.ngrok.io Choose all:



صورة



Update .





, 1 – . (, get_create_tests.txt) . , Run tests, Tests file , . Run tests , , :



صورة



, .



?



, , (USER), , .





أقدر أي اقتراحات لتحسين المشروع - أنا هنا للحصول على تعليقات.



إذا قرر شخص ما دراسة الكود في المستودع واقترح تحسينات أو تعليقات ، فسأكون سعيدًا أيضًا (أفضل في سلة التسوق -ilyaWD).




All Articles